ERLEDIGT
NEIN
NEIN
ANTWORTEN
2
2
ZUGRIFFE
1478
1478
EMPFEHLEN
-
Hallo,
ich bekomme die folgende Fehlermeldung:
http://www.MichaelSchilling.de\temp\snap.gif
Obwohl die Felder in der Datenbank, in der Reihenfolge existieren.
Code :1 2 3
Query1->SQL->Add("Insert into dbo.adresse (Name,Vorname,Strasse,Ort,PLZ)"); Query1->SQL->Add("ename->Text,evorname->Text,estrasse->Text,eort->Text,eplz->Text"); Query1->ExecSQL();
(Ich nutze hier die Komponente TQuery)
(Das folgende sind Edit-Felder:ename,evorname,estrasse,eort,eplz)
Woran liegt es ?
Was mache ich falsch ?
Gibt es eine andere Möglichkeit eine SQL Abfrage im Borland Builder zu machen ?
Wie kann ich die obere Fehlermeldung abfangen, so das eine MessageBox aufgeht ?___________________________________________
Gruss Mike
-
27.10.04 15:52 #2
- Registriert seit
- Oct 2004
- Beiträge
- 12
bin grad hier drüber gestolpert... beschäftige mich grad mit c#.NET und hatte dort eine ähnliche Fehlermeldung.
Versuchs mal mit einem try - catch befehl.
etwa wie dieser:
Code :1 2 3 4 5 6 7 8 9 10 11
try { Query1->SQL->Add("Insert into dbo.adresse (Name,Vorname,Strasse,Ort,PLZ)"); Query1->SQL->Add("ename->Text,evorname->Text,estrasse->Text,eort->Text,eplz->Text"); Query1->ExecSQL(); } catch ([size=2]Exception ex) { MessageBox.Show("Folgender Fehler ist aufgetreten: " + ex.Message); } [/size]
So gehts in .net - musst halt mal gucken, wie oder ob du das umstellen musst. So bekommst du dann zumindest schon mal ne MessageBox und kannst den Fehler abfangen.
Und dann überleg dir mal folgendes: Du fügst zweimal etwas zu deiner SQL-Abfrage hinzu... Häng es doch einfach mal hintereinander und überprüfe dann, was falsch läuft. Ich hab da den verdacht, dass vor die zweite Query noch etwas hinzumuss... gibts da nicht etwas wiein C++?Code :1
Query1->SQL->Add(" VALUES (ename->Text,evorname->Text,estrasse->Text,eort->Text,eplz->Text)");Geändert von Naddeldine (27.10.04 um 16:03 Uhr)
-
ich glaub zwar nicht, das das hier nochmal jemand liest, oder das das thema noch aktuell ist, aber der fehler liegt darin, das du diese "ename->Text" (was warscheinlich sowas wie ein TEdit o.ä. ist, ne?) nicht einfach mit in den string des querys rein schreiben kannst!
dafür brauchst du parameter:
Code :1 2 3 4 5
Query2->Close(); Query2->SQL->Clear(); Query2->SQL->Add("select * from projekte where kunde=:1;"); Query2->ParamByName("1")->AsString=Edit1->Text; Query2->Open();
das ist einfach mal ein ausschnitt aus einem meiner programme, vieleicht kannste anhand dessen nachvollziehen (oder vieleicht ist das ein ausreichender denkanstoß), wie dein code aussehen müsste!
wichtig ist, dass du in der eigentlichen sql anweisung mit diesen variablen arbeiten muss z.b. ":1" oder ":test" .... wie auch immer. dann musst du mit "ParamByName("1")->AsString=..." oder meintwegen "ParamByName("test")->AsInteger" diesen variablen die werte zuweisen!
wenn du's einmal raus hast, ist das ganz einfach...
... in diesem sinne...
Edit:
und das mit dem "Values(...)" was mein vorredner bereits angesprochen hat, darfst du natürlich bei deiner abfrage auch nicht vergessen
Geändert von Supa (28.12.04 um 11:11 Uhr)
Ähnliche Themen
-
Borland C++ Builder
Von riccardo1 im Forum C/C++Antworten: 7Letzter Beitrag: 02.05.08, 19:57 -
Borland C++ Builder?
Von Sinac im Forum C/C++Antworten: 9Letzter Beitrag: 12.12.06, 16:11 -
TQuery Insert Statement, Fehler bei Memo Feld
Von Sapperlot im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 15.11.06, 13:30 -
SQL-Abfrage über ODBC-Treiber (mit Borland C++-Builder)
Von RSalfer im Forum Relationale DatenbanksystemeAntworten: 0Letzter Beitrag: 21.10.04, 12:43 -
Borland c++ Builder
Von js-mueller im Forum C/C++Antworten: 11Letzter Beitrag: 11.09.03, 12:57





Zitieren
Login






