Entwickler-Ecke

Datenbanken - Problem mit TzUpdateSQL.InsertSQL


Ebil - Sa 02.08.08 15:06
Titel: Problem mit TzUpdateSQL.InsertSQL
Hi leute, hab mich nun mal wieder etwas mit datenbanken beschäftigt aber es gibt ein problem.
Ich hab eine datenbank mit IB Expert erstellt (benutz aber Die zeoslib).
so nun will ich ein eintrag in die DB machen:


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
var
 sql: tstringlist;
begin
  sql := tstringlist.create;
  sql.Add('INSERT INTO BLABLA');
  sql.Add('(NAME, ADRESSE)');
  sql.Add('VALUES');
  sql.Add('(:blub, :Entenhausen)'); // Wozu das :? Kenne sowas aus MySQL garnicht
  if dbconnect.Connected then
  begin
    UpdateSQL.InsertSQL := sql;
  end;
  sql.free;


Dann schau ich im IB Expert ob der eintrag funktioniert hat, hat er aber nicht, es gibt auch keine fehlermeldung oder sonstwas :/
Hoffe jemand kennt das problem.

Gruß
Ebil


Delete - Sa 02.08.08 15:18

dann schau mal die einträge an, welche er gemacht hat ... ;-)

aber das sind parameter, welche normal vor dem posten zu setzen sind.


Ebil - Sa 02.08.08 15:28

Das versteh ich nun nicht o.O
Was für Parameter?
Ich sag ja ich sehe keinen neuen einträge in der DB.


Ebil - Sa 02.08.08 21:10

Soooo... Habs mittlerweile nun hingekriegt mit dem INSERT INTO, auch wenn einige probleme aufgetaucht sind.
Aber nun hab ich ein Problem bei dem ich absolut nicht weiterkomme.
Wie führe ich ein SELECT befehl aus und bekomme dann den rückgabewert?


Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
    
    sql.clear;
    readqry.SQL.Clear;
    sql := tstringlist.create;
    sql.Add('SELECT ID FROM Bla WHERE NAME = '+NAME);
    readqry.SQL := sql;
    readqry.Open;
    sql.free;


Ebil


Blawen - Sa 02.08.08 22:36

Wen ich mir Deinen QT so ansehe... :?
Da fehlt aber noch einiges an Grundlagen.

Schau Dir mal folgende Tutorials/Hilfen an:
http://www.delphi-treff.de/tutorials/datenbanken/
http://sql.1keydata.com/de/sql-syntax.php

Oder schau mal einfach in Google nach den Begriffen "Delphi SQL Tutorial"


Ebil - Sa 02.08.08 22:48

Ich weiss, ich will erstmal alles hinkriegen,
Ich hab jetzt schon so viele tuts gelesen und langsam gehts mir auf die eier, nirgendwo ist ein beispiel wie man verschiedene standart querys die man immer braucht genau nutzt, immer werden die komponenten nen klein wenig erklärt, das hilft mir nicht weiter.

Ok hab hier was zum auslesen gefunden http://www.delphi-treff.de/tutorials/datenbanken/mysql-mit-zeoslib/page/6/

Allerdings krieg ich bei meinem code immer ne zugriffsverletzung... :/
(der von oben)
//Ok die fehlermeldung hab ich nun auch gelöst, hab da was übersehen gehabt <_<
Meine abfrage klappt trozdem iwie nicht, als ID wird nur 0 ausgegeben...
//Edit:
Ach man muss ja nen datensatz weitergehen ... -.-

Ebil


Blawen - Sa 02.08.08 23:27

Bei Deinem Code ist es klar, dass es von Fehlermeldungen hagelt ;-)

Wenn Du es wirklich begreifen willst, kommst Du um das Studieren der Dokumente nicht umhin.
Beim 2. Link, werden die Syntaxe relativ gut erklärt.

Zu Deiner konkreten Frage, bezüglich Rückgabewert:


Delphi-Quelltext
1:
2:
3:
ZQ_Such.SQL.Text := 'Select * from BR_VERKAUF WHERE MITARBEITER_ID ="'+Suchbegriff + '"';
ZQ_Such.Active   := True;    
sName            := ZQ_Such.FieldByName('NAME').AsString;



Hinweis:
ExecSQL liefert im Gegensatz zu Active := True keinen Rückgabewert!


Ebil - Sa 02.08.08 23:38

Joa wie gesagt hab ichs mittlerweile , torzdem danke.
Und das execsql kein rückgabe wert liefer hab ich schon gelese ;P

Ich kann MySQL von PHP, aber wusste nicht wie der Syntax nun bei delphi genau ist und hab ohne ende rumprobiert, und ja auch hier muss der string in hochkommas...^^

Ebil


Blawen - Sa 02.08.08 23:57

user profile iconEbil hat folgendes geschrieben:
Joa wie gesagt hab ichs mittlerweile , torzdem danke.
Und das execsql kein rückgabe wert liefer hab ich schon gelese ;P

Ich kann MySQL von PHP, aber wusste nicht wie der Syntax nun bei delphi genau ist und hab ohne ende rumprobiert, und ja auch hier muss der string in hochkommas...^^

Ebil
Die SQL-Syntax hat mit Delphi nichts zu tun! Und was Du nun gelesen hast und was nicht, hast Du auch nicht wirklich deklariert.
Aber wie geschrieben, wenn ich mir Deinen QT so ansehe... ;P