AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Mehrere Tabellen mit Delphi verbinden
Thema durchsuchen
Ansicht
Themen-Optionen

Mehrere Tabellen mit Delphi verbinden

Ein Thema von MoYo · begonnen am 8. Mai 2005 · letzter Beitrag vom 31. Mai 2005
 
Benutzerbild von Union
Union

Registriert seit: 18. Mär 2004
Ort: Luxembourg
3.492 Beiträge
 
Delphi 7 Enterprise
 
#14

Re: Mehrere Tabellen mit Delphi verbinden

  Alt 24. Mai 2005, 07:44
Zitat von MoYo:
Also ich bin grad am Insert Into bei Delphi dran. Dabei habe ich folgendes Problem

Delphi-Quellcode:
 Form1.Query1.Active := False;
   Form1.Query1.SQL.Clear;
   Form1.Query1.SQL.Text:='INSERT INTO "E:\Sporttag\MySQL\Lehrer.DB" '+
                    '( LehrerID, LEHnname, LEHvname, LEHkurz)'+
                    ' VALUES '+
                    '('+Edit1.Text+','+Edit2.Text+', '+Edit3.Text+
                    ', '+Edit4.Text+');';
   ShowMessage(Form1.Query1.Text); // Habe ich gemacht um zu sehen, was der dort reinschreibt.
   Form1.Query1.ExecSQL;
   Form1.Query1.SQL.Clear;
   Form1.Query1.SQL.Add('Select'
                + ' Lehrer."LehrerID", Lehrer."LEHnname",'
                + ' Lehrer."LEHvname", Lehrer."LEHkurz"'
                + ' From "E:\Sporttag\MySQL\Lehrer.DB" As Lehrer');
   Form1.Query1.ExecSQL;
   Form1.Query1.Active := True;
Könnt ihr mir sagen, was für einen Fehler ich dort habe ?

MFG,

MoYo
Also erstmal solltest Du die Tabelle nicht direkt ansprechen, sondern den Pfad/Alias in einem TDatabase Objekt definieren. Sonst kannst Du das Programm ja nie auf einem anderen Rechner laufen lassen.

Dann musst Du, um Strings einzufügen, diese entweder mit Hochkomma versehen oder über Parameter in das SQL einfügen:
Delphi-Quellcode:
 Form1.Query1.Active := False;
   Form1.Query1.SQL.Clear;
   Form1.Query1.SQL.Text:='INSERT INTO "E:\Sporttag\MySQL\Lehrer.DB" '+
                    '( LehrerID, LEHnname, LEHvname, LEHkurz)'+
                    ' VALUES '+
                    '('+Edit1.Text+','+QuotedStr(Edit2.Text)+', '+QuotedStr(Edit3.Text)+
                    ', '+QuotedtStr(Edit4.Text)+');';
   ShowMessage(Form1.Query1.Text); // Habe ich gemacht um zu sehen, was der dort reinschreibt.
   Form1.Query1.ExecSQL;
   Form1.Query1.SQL.Clear;
   Form1.Query1.SQL.Add('Select'
                + ' Lehrer."LehrerID", Lehrer."LEHnname",'
                + ' Lehrer."LEHvname", Lehrer."LEHkurz"'
                + ' From "E:\Sporttag\MySQL\Lehrer.DB" Lehrer'); // Hier war ein As zu viel, das macht man nur bei Feldnamen
   // ExecSQL nur dann nehmen, wenn keine Rückgabedatenmenge entsteht, z.b. bei INSERT, UPDATE, DELETE
   // Alternative zu Active := true kann auch Open verwendet werden.
   Form1.Query1.Active := True;
Alternative mit Parametern:
Delphi-Quellcode:
 Form1.Query1.Active := False;
   with Form1.Query1 do
   begin
      SQL.Clear;
      SQL.Add('INSERT INTO "E:\Sporttag\MySQL\Lehrer.DB" ');
      SQL.Add('( LehrerID, LEHnname, LEHvname, LEHkurz)');
      SQL.Add('VALUES ');
      SQL.Add(':LehrerID, LEHnname, LEHvname, LEHKurz');
      ParamByName('LehrerId').AsString := Edit1.Text;
      ParamByName('LEHnname').AsString := Edit2.Text;
      ParamByName('LEHvname').AsString := Edit3.Text;
      ParamByName('LEHKurz').AsString := Edit4.Text;
      Open;
Generell solltest Du Dir auch angewöhnen, jede Variable nach ihrer Verwendung zu benennen und nicht auf dem Standardwert zu lassen. So ist EditLehrerVorname ja sicherlich wesentlich aussagekräftiger als Edit3. Bei lebel-Objekten halte ich das noch für vertretbar, wenn nur die Caption geändert wird. Aber jedes Objekt, bei dem Du mehrere Eigenschaften änderst oder in einer Sourcecodezeile ansprichst, sollte benannt sein.
Ibi fas ubi proxima merces
sudo /Developer/Library/uninstall-devtools --mode=all
  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 02:20 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