Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi PostgreSQL, INSERT INTO - (https://www.delphipraxis.net/72633-postgresql-insert-into.html)

m.wollert 4. Jul 2006 12:26

Datenbank: PostgreSQL • Version: 8.1 • Zugriff über: ADO

PostgreSQL, INSERT INTO -
 
Hallo zusammen,

hoffentlich erwische ich den einen oder anderen, der mit PostgreSQL so seine Erfahrung hat :-)

Ich möchte - "ganz simpel" dachte ich ursprünglich - Daten in eine Tabelle einfügen.

Hierfür habe ich ein ADOConnection auf das Formular gezogen, und den String
Provider=PostgreSQL.1;Password=postgres;User ID=postgres;Data Source=127.0.0.1;Location=test;Extended Properties=""
definiert.

Anfragen und Befehle an die DB werden durch ADOQuery realisiert.

Die Datenbank heißt "test"

Die Testtabelle heißt "table1", und deren Felder habe ich
firstrow char 25
secondrow char 50
benannt

Delphi-Quellcode:
begin
  Qry.SQL.Clear;
  Qry.SQL.Text := 'INSERT INTO table1 (firstrow, secondrow) VALUES (:firstfield, :secondfield);';
  Qry.Parameters.ParamByName('firstfield').Value := 'firstvalue';
  Qry.Parameters.ParamByName('secondfield').Value := 'secondvalue';
  Qry.ExecSQL;
end;
Führe ich den Code aus, bekomme ich die Meldung :
'In dem Rowset sind keine Spalten definiert'

Kann mir evtl. jmd. sagen wo mein Fehler liegt? Ich dachte, ich hätte die Felder angelegt... ;)

Danke! :-)

[edit=alcaeus]BBCodes aktiviert. Mfg, alcaeus[/edit]

RavenIV 4. Jul 2006 12:36

Re: PostgreSQL, INSERT INTO -
 
zwei Sachen, die ich machen würde:

1) das SQL-Statement in einem anderen Programm ausführen lassen (z.B. DB-Editor oder SQL-Administrator, oder was es sonst für Postgres gibt).

2) in den ADO schauen, wo die Fehlermeldung erzeugt wird und dann weiterforschen.

marabu 4. Jul 2006 12:43

Re: PostgreSQL, INSERT INTO -
 
Hallo Michael,

SQL.Clear kannst du weglassen und das abschließende Semikolon im INSERT-Statement musst du weglassen.

Grüße vom marabu

m.wollert 4. Jul 2006 12:46

Re: PostgreSQL, INSERT INTO -
 
Danke für die prompte Antwort,

im SQL-Editor läuft das locker durch:
INSERT INTO table1 (firstrow, secondrow) VALUES ('value1', 'value2')
-> Abfrage war erfolgreich durchgeführt: 1 Zeilen, 16 ms Ausführungszeit.

Debuggen kann ich das nicht, das läuft in der System.pas durch einen ASM-Bereich - und das ist mir leider zu hoch...

Falls noch eine Idee rumschwirrt - Melden! :-)


@marabu: ja, das sind die allseitsbekannten Verzweiflungsakte... Man klemmt da noch ein clear rein, und editiert da noch etwas rum... aber letztendlich gebracht hat es leider nix... Danke trotzdem:)

Michael:)

m.wollert 4. Jul 2006 12:48

Re: PostgreSQL, INSERT INTO -
 
Mir ist gerade aufgefallen, daß die Daten eingetragen werden.

D.h. daß der Fehler NACHDEM die Daten in die DB übertragen wurden, auftritt.

marabu 4. Jul 2006 12:55

Re: PostgreSQL, INSERT INTO -
 
Das Semikolon hast du wohl schon wieder raus genommen. Vielleicht wird deine Query über eine DataSource an eine visuelle Komponente gebunden?

marabu

m.wollert 4. Jul 2006 13:01

Re: PostgreSQL, INSERT INTO -
 
Nein, leider ebenfalls nicht. Ich habe ein komplett leeres Testprojekt erstellt, in dem ich nur die notwendigen zwei DB-Komponenten, zwei Buttons und ein Memo-Feld verwendet habe.

m.wollert 4. Jul 2006 13:18

Re: PostgreSQL, INSERT INTO -
 
Sobald ich in der ADOConnection
CursorLocation auf "clUseServer"
setze, erscheint die Fehlermeldung nicht mehr.

Danke an die, die mitgedacht haben :)

Grüße!
Michael


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:47 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz