[Access] Bug bij insert lege string?*

Pagina: 1
Acties:

  • TromboneFreakus
  • Registratie: Juli 2001
  • Laatst online: 01-08-2023
Na een boel puzzelen en staren naar waarom ik toch telkens slechts 172 records van de 1464 op de MySQL-server binnen kreeg (zie dit topic), ben ik er uit: Access accepteert geen INSERT queries met een veld zonder waarde.

Het vreemde is dus, dit werkt wel:
code:
1
INSERT INTO `Ledenlijst` (`LidID`,`achternaam`,`voorletters`,`voornaam`,`mailadres`) VALUES ('635 ','Jansen ','M. ','Mark ',' ');


En dit werkt niet:
code:
1
INSERT INTO `Ledenlijst` (`LidID`,`achternaam`,`voorletters`,`voornaam`,`mailadres`) VALUES ('635','Jansen','M.','Mark','');

Het grote onderscheid is dus dat in het laatste geval in het laatste veld geen spatie staat.

Weet iemand waarom? Of is dit inderdaad een bug in Access??

Nu heb ik - zoals te zien - heel grof een spatie toegevoegd aan iedere veldwaarde, maar dat is natuurlijk niet ideaal. Dat kan ook wel beter.

Het punt is alleen: dit is toch niet nodig??

  • phYzar
  • Registratie: November 2001
  • Laatst online: 07:09
En als je null opgeeft?

//edit: en als je gewoon mailadres niet opgeeft bij 'te vullen velden'? Aangezien je er geen waarde in wilt stoppen? Lijkt me netter...

[ Voor 76% gewijzigd door phYzar op 05-05-2005 23:21 ]


  • TromboneFreakus
  • Registratie: Juli 2001
  • Laatst online: 01-08-2023
Goede suggestie, dat werkt.

Alleen op PhpMyAdmin is dat niet nodig. Is nu dit pakket in feite te gebruiksvriendelijk door mijn foute SQL-query te accepteren, of is toch Access verkeerd bezig?

  • TromboneFreakus
  • Registratie: Juli 2001
  • Laatst online: 01-08-2023
phYzar schreef op donderdag 05 mei 2005 @ 23:18:
//edit: en als je gewoon mailadres niet opgeeft bij 'te vullen velden'? Aangezien je er geen waarde in wilt stoppen? Lijkt me netter...
mmm, tegelijk online, dan mis je de edit....

Dat wordt lastig, want mijn code is juist dat in een ruk alle records worden langsgelopen en alle velden. Volgens mij kost het meer resources om te checken of er niets in een veld zit, dan gewoon het veld zonder waarde te inserten.

  • DizzyWeb
  • Registratie: Februari 2001
  • Laatst online: 08:19

DizzyWeb

Ondertiteld

TromboneFreakus schreef op donderdag 05 mei 2005 @ 23:21:
[...]


Goede suggestie, dat werkt.

Alleen op PhpMyAdmin is dat niet nodig. Is nu dit pakket in feite te gebruiksvriendelijk door mijn foute SQL-query te accepteren, of is toch Access verkeerd bezig?
Sja, Access != MySQL. SQL is leuk een standaard, maar iedere database heeft zijn eigen implementatie van SQL en die zijn zeker niet allemaal gelijk.

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 15-04 22:07

NMe

Quia Ego Sic Dico.

De SQL code die je laat zien is voor zover ik kan zien geen Access-SQL. Waar gaat het nou mis? Die insert doe je toch in MySQL? Waarom denk je dan dat de bug in Access zit? :?

Titelfix overigens. :P

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


  • TromboneFreakus
  • Registratie: Juli 2001
  • Laatst online: 01-08-2023
-NMe- schreef op donderdag 05 mei 2005 @ 23:57:
De SQL code die je laat zien is voor zover ik kan zien geen Access-SQL. Waar gaat het nou mis? Die insert doe je toch in MySQL? Waarom denk je dan dat de bug in Access zit? :?
Die code moet voorafgaan door DoCmd.Execute. Het gaat dus om het toevoegen van gegevens in Access met behulp van SQL (omdat SQL zo makkelijk dynamisch op te bouwen is, gewoon de string nog wat langer maken).

Maar als op dat vlak mijn code anders zou moeten, hoor ik dat graag. Overigens gaat het net zo mis wanneer ik de veldnamen niet door ` laat omsluiten, maar door de haken [].

  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
TromboneFreakus schreef op vrijdag 06 mei 2005 @ 11:31:
Overigens gaat het net zo mis wanneer ik de veldnamen niet door ` laat omsluiten, maar door de haken [].
Veldnamen hoef je helemaal niet te omsluiten, en bij de waarden is het afhankelijk van het datatype (numeriek: niets, string: quotes, datum: #)

[ Voor 50% gewijzigd door BertS op 06-05-2005 12:31 ]


  • riezebosch
  • Registratie: Oktober 2001
  • Laatst online: 04-05 13:09
Je hoeft alleen de veldnamen omsluiten met [] (volgens mij sowieso niet met ' ' ) als er een spatie in voorkomt.

[edit]
Hier doet ie 't trouwens prima:

code:
1
INSERT INTO Ledenlijst (LidID, achternaam, voorletters, voornaam, mailadres) VALUES (635, 'Jansen', 'M.', 'Mark', '');

[ Voor 60% gewijzigd door riezebosch op 06-05-2005 13:22 ]

Canon EOS 400D + 18-55mm F3.5-5.6 + 50mm F1.8 II + 24-105 F4L + 430EX Speedlite + Crumpler Pretty Boy Back Pack


  • BertS
  • Registratie: September 2004
  • Laatst online: 13-02 08:33
Die fout op de lege string zal waarschijnlijk worden getriggerd doordat de eigenschap 'lengte nul toestaan' van het veld in de tabel op Nee staat. Je kunt dan wel een Null inserten.
Pagina: 1