Was hab ich da noch falsch? In Datenbank schreiben
-
[quote="ela"]
AnsiString SQLstmt = "INSERT INTO Test.mdb' " +
Hmm was soll der ' den hinter dem mdb?
Debuggen geht natürlich auch, Haltepunkt setzen (links neben dem Codefenster, ka wie ich es beschreiben soll) und mit F7 und F8 durchgehen.
(F7 & F8 sind bei mir die Defaultwerte)
-
dere Fehler kommt doch bestimmt hier oder :
AnsiString SQLstmt = "INSERT INTO Test.mdb' " +
ja gibts ..es drückst links aufs graue kommt nen roter punkt.
-
vielleicht liegt's enfach daran:
AnsiString SQLstmt = "INSERT INTO Test.mdb' " +
also: Test.mdb-->'<--
-
Hallo,
danke für die schnellen antworten. Also das mit der Fehlermeldung hat sich erledigt, das scheint an dem ' gelegen zu haben. Das Programm läuft im Debug-Mode bis zur Zeile:
Database1->Execute(SQLstmt, stmtParams, false, NULL);
und dann sagt er Objekt nicht vorhanden oder gefunden. Was kann das noch sein.
Übrigens mir stürtzt das Borland sehr oft. Was kann ich da noch machen?
-
Hallo,
wenn du die Verbindung zur Datenbank über die Database1-Komponente herstellen konntest (hab ich bei meinen Versuchen leider nicht hingekriegt), so kann das nur noch an der SQL Anweisung liegen. In dieser gibst Du nämlich nicht an, in welcher Tabelle die Insert-Anweisung ausgeführt werden soll.
Wenn deine Tabelle also "Tabelle1" heisst, so mußt du folgende Anweisung schreiben:AnsiString SQLstmt = "INSERT INTO Tabelle1 " + //statt test.mdb AnsiString("(Dekor, Kunde, Ort, Auftragsnummer)") + AnsiString("VALUES ('Test', 'Müller','Max', '12345')");
Hoffe, ich konnt Dir weiterhelfen.
-
btw ist es praktischer std::string zu benutzen ( wenn deine c++ kenntnisse so gut sind wie du auf der hp anpreist )
-
@ 1ntrud0r
1ntrud0r schrieb:
btw ist es praktischer std::string zu benutzen ( wenn deine c++ kenntnisse so gut sind wie du auf der hp anpreist )
was meinst Du damit?
@all
Ich hab die Verbindung zur Datenbank und das Eintragen klappt auch, keine Fehlermeldungen mehr.Eine Sache würde mich jetzt noch Interessieren: Im VC++
kann man folgenden Ausdruck:Test.Format("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
schreiben und das haut auch hin.
Geht das auch im Borland irgendiwe. Ich glaub ich hab nen Brett vorm KopfDanke
-
Hallo,
Test.Format("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
Das kannst du in Borland so schreiben :
String Test; //entspricht AnsiString Test.Printf("VALUES ('%s', '%s','%s', '%s]')", Teil[0],Teil[1],Teil[2],Teil[3]);
Die Beschreibung der Printf-Methode findest du in der Hilfe unter "AnsiString-Methoden".
Würde ich aber so nicht empfehlen, besser wäre:
String Test; //entspricht AnsiString Test = "VALUES ("; Test+= "'"+String(Teil[0])+"',"+ "'"+String(Teil[1])+"',"+ "'"+String(Teil[2])+"',"+ "'"+String(Teil[3])+"')";
Natürlich läßt sich das auch mit einer for-Schleife elegant erledigen.
Gruß Burkhard
-
@ Burkhard
Okay, das hab ich verstanden. Funktioniert das auch mit nem AnsiString so, weil das Statement doch eigentlich hierzu:
AnsiString SQLstmt = "INSERT INTO Eingelesene" + AnsiString("(Dekor, Kunde, Ort, Auftragsnummer)") + AnsiString("VALUES ('Test', 'Müller','Max', '12345')");
gehört
-
man kann für formate auch einfach bei sprintf bleiben und den standard wahren .. aber ich denke das wisst ihr schon alles
-
Danke es funzt.
-
Ja, das geht auch, weil String ja AnsiString entspricht, es ist nur eine Typedefinition:
typedef AnsiString String;
Weiß allerdings nicht, wo in der VCL das definiert ist.
Gruß Burkhard
-
Ja, das geht auch, weil String ja AnsiString entspricht, es ist nur eine Typedefinition:
typedef AnsiString String;
Weiß allerdings nicht, wo in der VCL das definiert ist.
Gruß Burkhard
-
ela schrieb:
Noch eine andere Frage: Gibt es im Borland Builder 5.0 C++ eine ähnliche Debug-Funktion wie im VC++, also Hlatpunkt setzen und dann Step by Step weitergehen und sehen was in den einzelnen Variablen drin steht?
Btw: Vielleicht hilft das hier noch etwas weiter:
http://www.junix.ch/bcb/help
Da hats nen Artikel, übers Debuggen mit dem BCB...Und für die Zukunft bitte: Für verschiedene Themen auch verschiedene Threads verwenden. Danke.
-junix