AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken SQLQuery das Feld 'id' wurde nicht gefunden.
Thema durchsuchen
Ansicht
Themen-Optionen

SQLQuery das Feld 'id' wurde nicht gefunden.

Ein Thema von gemy · begonnen am 17. Feb 2019 · letzter Beitrag vom 25. Feb 2019
 
gemy

Registriert seit: 17. Feb 2019
34 Beiträge
 
#12

AW: SQLQuery das Feld 'id' wurde nicht gefunden.

  Alt 17. Feb 2019, 21:12
Also ich bin jetzt durchgestiegen !

Schickt man ein
Code:
    SQLQuery1.SQL.Text := 'select last_insert_rowid()';
    SQLQuery1.open;
ab, und schaut sich danach mit
Code:
 SQLQuery1.GetFieldNames(names);
an, so sieht man das der Eintrag 0 "Column0" heisst.

Im regelfall würde man z.B. so schreiben
Code:
SQLQuery1.SQL.Text :='select id,website, mainurl,username from users
. Schaut man sich dann mit
Code:
SQLQuery1.GetFieldNames(names)
die Felder an, so heissen diese auch id, website, mainurl, username.

Man kann also auf select last_insert_rowid() nur zugreifen mit :

a)
Code:
    SQLQuery1.SQL.Text := 'select last_insert_rowid()';
    SQLQuery1.open;
    //SQLQuery1.GetFieldNames(names);  
    id := SQLQuery1.Fields[0].AsString;

oder

b)
Code:
    SQLQuery1.SQL.Text := 'select last_insert_rowid()';
    SQLQuery1.open;  
    id := SQLQuery1.Fieldbyname('Column0').AsString;


Warum ich vorher "select last_insert_rowid()" mit der "id mit dem primärschlüssel" gleichgesetzt habe erschließt sich mir nicht mehr. Select_last_insert_rowid() hat mit keinem Feld irgendwas zu tun.

Woher das Column0 kommt oder wie ich das ändern kann weis ich noch nicht. Jedenfalls funktioniert jetzt alles und ich habe den durchblick. Vielleicht sieht noch jemand einen Verbesserungsvorschlag hier :


Code:
procedure TForm1.Button4Click(Sender: TObject);
var
  itm: Tlistitem;
  id: string;
  names: TStringList;
begin
  names := TStringList.Create;
  if ((Trim(Edit1.Text) <> '') and (Trim(Edit2.Text) <> '') and
    (Trim(Edit5.Text) <> '')) then
  begin
    PrepareParamsUsers;   // ...SQLquery1.Params.CreateParam(ftString, 'website', ptInputOutput); ...
    SQLQuery1.ParamByName('website').Value := Edit1.Text;
    SQLQuery1.ParamByName('mainurl').Value := Edit2.Text;
    SQLQuery1.ParamByName('username').Value := Edit3.Text;
    SQLQuery1.ParamByName('password').Value := Edit4.Text;
    SQLQuery1.ParamByName('dbname').Value := Edit5.Text;
    SQLQuery1.ParamByName('searchsite').Value := CheckBox1.Checked;
    SQLQuery1.ParamByName('listresults').Value := CheckBox2.Checked;
    SQLQuery1.SQL.Text :=
      'insert into users (website,mainurl,username,password,dbname,searchsite,listresults) '
      + 'values(:website,:mainurl,:username,:password,:dbname,:searchsite,:listresults) ';
    SQLQuery1.ExecSQL;
    Showmessage(Edit1.Text + ' added to database');
    ClearAllEditFields;
    SQLQuery1.SQL.Text := 'select last_insert_rowid()';
    SQLQuery1.open;
    //SQLQuery1.GetFieldNames(names);     //--  zum testen wie rowid heist.
    id := SQLQuery1.Fields[0].AsString;
    SQLQuery1.SQL.Text :=
      'select id,website, mainurl,username from users where id =' + id;
    SQLQuery1.open;
    SQLQuery1.First;
    SQLQuery1.GetFieldNames(names);
    //showmessage(sqlquery1.Fields[1].asstring);
    while not SQLQuery1.Eof do
    begin
      itm := ListView1.Items.Add;
      itm.Caption := SQLQuery1.FieldByName('id').AsString;
      itm.SubItems.Add(SQLQuery1.FieldByName('website').AsString);
      itm.SubItems.Add(SQLQuery1.FieldByName('mainurl').AsString);
      itm.SubItems.Add(SQLQuery1.FieldByName('username').AsString);
      SQLQuery1.Next;
    end;
  end;
end;



Danke für die Hilfe. Manchmal müssen sich erst einen ganzen Tag lang die Synapsen im Gehirn neu verknüpfen bevor man es kapiert
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 13:09 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz