sql fehler


#1
Code:
Query1->SQL->Add(Format("INSERT INTO User (Name, Passwort,Standartsprache)VALUES (%s, %s, %s)",OPENARRAY(TVarRec,(edt_nuser->Text,edt_npasswort->Text,edt_nsprache->Text))));
Query1->Active=true;
Query1->ExecSQL();
Query1->Close();
#

bekomme den fehler der klasse EDBEngineError mit Allgemeiner SQL Feher...
"2Parameter wurden erwatet, aber es wurden zu wenig Parameter übergeben"...

weiß jemand wodran es liegt?
 

CSANecromancer

Erfahrenes Mitglied
#2
Ohne zu sehen, was tatsächlich zur Laufzeit in den Variablen steht - nö, keine Ahnung.
Aber meine erste zarte Vermutung geht dahin, dass du in irgendeiner der Variablen einen Delimiter (', ") drin hast, der da nicht reingehört und den SQL-Befehl syntaktisch vorzeitig schliesst.
 

KD3

Erfahrenes Mitglied
#3
Ich denke mal du könntest das problem so lösen:

OPENARRAY(TVarRec,(edt_nuser->Text,edt_npasswort->Text,edt_nsprache->Text)

Ist im Suchfeld des Compilers nur ein Parameter, du musst die inhalte einer anderen variable übergeben und dann anschließend einsetzen.

Genau wie mein Vorredner schon erwähnt hatte, müsse man erst den SourceCode sehen (vielleicht auch teil des sourcecodes), bevor man helfen könnte.
 
#4
S=Format("INSERT INTO User (Name, Passwort,Standardsprache)VALUES ('%s', '%s', '%s')",OPENARRAY(TVarRec,((edt_nuser->Text),(edt_npasswort->Text),(edt_nsprache->Text))));

so isses richtig..


warum brauch man source code es sind EDIT felder ^^ da steht das drin was der user eingibt.. sonst bezieht sich doch nix auf den code von vorher ^^

aber dankeschön
 

CSANecromancer

Erfahrenes Mitglied
#5
Genau wie mein Vorredner schon erwähnt hatte, müsse man erst den SourceCode sehen (vielleicht auch teil des sourcecodes), bevor man helfen könnte.
Vom Sourcecode habe ich nichts gesagt.

blunateddy hat gesagt.:
warum brauch man source code es sind EDIT felder
Na prima. Dann gebe ich dir mal ein paar Eingaben für die EDIT-Felder vor und du kannst ausprobieren, was dann rauskommt:

edt_nuser: dumdi""dum
edt_npasswort: SELECT
edt_nsprache: ))

Sag ja nicht, dass deine Editfelder TMaskeEdits sind oder Tastaturfilter haben, davon war nämlich in deinem Codesnippet nichts zu sehen.

Das meine ich damit, wenn ich sage, dass ich zur LAUFZEIT wissen müsste, was in den Variablen steht.