AGB  ·  Datenschutz  ·  Impressum  







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

Umgang mit Datenbank

Offene Frage von "dominikkv"
Ein Thema von dominikkv · begonnen am 4. Nov 2006 · letzter Beitrag vom 5. Nov 2006
Antwort Antwort
Seite 2 von 2     12   
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#11

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 12:04
http://www.dsdt.info/tutorials/ado/
http://www.dsdt.info/tutorials/dbteil2/
http://www.dsdt.info/tutorials/
Markus Kinzler
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#12

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 13:18
Zitat von mkinzler:
Bernhardt hat dir doch geraten, die Beispiele von Delphi anzusehen, haben die dir nicht geholfen?
es gibt bei mir keine beispiele dazu...

Zitat von mkinzler:
hab ich beide schon angeschaut...funktionieren ein paar sachen nicht weil ich diese sch*** explorer edition hab...

Zitat von Phoenix:
Zitat von dominikkv:
ich will einfach nur wissen wie ich einen datensatz in eine Access-DB schreiben kann...
SQL-Code:
INSERT INTO
   tabellenname
   (Feldname1, Feldname2, Feldname3)
VALUES
   (Wert1, Wert2, Wert3);
Wobei Du Textwerte z.B. mit ' escapen musst.

hab nun Folgendes:
Delphi-Quellcode:
procedure TForm1.Button5Click(Sender: TObject);
begin
DataModule2.ADOConnection1.BeginTrans;
with DataModule2.ADOQuery1 do
  try
    Active:=false;
    SQL.Clear;
    Append;
    SQL.Add('INSERT INTO Fehlerbericht (Feld1, Feld2, Feld3) VALUES ("Wert1", "Wert2", "Wert3")');
    ExecSQL;
    DataModule2.ADOConnection1.CommitTrans;
      except
    on E:Exception do DataModule2.ADOConnection1.RollbackTrans;
    end;
end;
wenn ich aber auf den button klicke kommt die fehlermeldung:
Zitat:
---------------------------
Benachrichtigung über Debugger-Exception
---------------------------
Im Projekt Datei_Filtern.exe ist eine Exception der Klasse EDatabaseError mit der Meldung 'ADOQuery1: Operation bei geschlossener Datenmenge nicht ausführbar' aufgetreten.
ich habe einfach in Access eine neue DB und darin eine neue Tabelle erstellt die Fehlerbericht heisst und darin die Spalten Feld1, Feld2 und Feld3 erzeugt. ich habs schon mit primärschlüssel und ohne primärschlüssel versucht...
Dominik
  Mit Zitat antworten Zitat
Schweesspunkt

Registriert seit: 6. Sep 2006
Ort: ZARE ouest L-4394 Ehlerange
14 Beiträge
 
#13

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 15:23
Hallo,

Zitat:
procedure TForm1.Button5Click(Sender: TObject);
begin
DataModule2.ADOConnection1.BeginTrans;
with DataModule2.ADOQuery1 do
try
Active:=false;
SQL.Clear;
Append;
SQL.Add('INSERT INTO Fehlerbericht (Feld1, Feld2, Feld3) VALUES ("Wert1", "Wert2", "Wert3")');
ExecSQL;
DataModule2.ADOConnection1.CommitTrans;
except
on E:Exception do DataModule2.ADOConnection1.RollbackTrans;
end;
end;
Ich glaube du musst nur active auf true setzten.



M.f.G.
Kunsch Alain
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#14

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 17:26
ok, hat sich erledigt...ich hab die tabelle nochmal gelöscht und neu angelegt und jetzt gehts...
so, noch eine frage:
so kann ich in ein feld vom typ "Text" schreiben:
SQL.Add('INSERT INTO Tabelle (Textfeld1, Textfeld2) VALUE ('+QuotedStr(variable1)+', '+QuotedStr(variable2)+'); wie kann ich jetzt integer-variablen in ein feld vom typ "Zahl" (Long Integer) Schreiben?
Dominik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#15

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 17:53
INSERT INTO Tabelle (<integerfeld>) VALUE (<Wert>);
Markus Kinzler
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#16

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 18:04
thx
wie mache ich das eigendlich wenn ich 2 tabellen in einer DB ändern will...
SQL-Code:
with DataModule2.ADOQuery1 do
  try
    Active:=false;
    SQL.Clear;
    SQL.Add('INSERT INTO Tabelle1 (feld1, Feld2) VALUE ("a", "b")');
    SQL.Add('INSERT INTO Tabelle2 (feld1, Feld2) VALUE ("a", "b")');
    ExecSQL;
    DataModule2.ADOConnection1.CommitTrans;
   except
    on E:Exception do DataModule2.ADOConnection1.RollbackTrans;
   end;
...geht irgendwie nicht:
Zitat:
Im Projekt Datei_Filtern.exe ist eine Exception der Klasse EOleException mit der Meldung 'Fehlendes Semikolon (;) am Ende der SQL-Anweisung' aufgetreten.
Dominik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#17

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 18:12
Am besten mit Parametern:
Delphi-Quellcode:
with DataModule2.ADOQuery1 do
  try
    Active:=false;
    SQL.Text := 'INSERT INTO Tabelle1 (feld1, Feld2) VALUE ( :w1, :w2)');
    Paramters.ParamByName( w1, 'a');
    Paramters.ParamByName( w2, 'b');
    ExecSQL;
    Paramters.ParamByName( w1, 'c');
    Paramters.ParamByName( w2, 'd');
    ExecSQL;
    ...
    DataModule2.ADOConnection1.CommitTrans;
   except
    on E:Exception do DataModule2.ADOConnection1.RollbackTrans;
   end;
Markus Kinzler
  Mit Zitat antworten Zitat
dominikkv

Registriert seit: 30. Sep 2006
Ort: Gundelfingen
1.109 Beiträge
 
Delphi 2007 Professional
 
#18

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 18:18
so wie ich das interpretiere legt er dann aber 2 datensätze in einer tabelle an...ich will aber den ersen datensatz in tabelle1 und den zweiten datensatz in tabelle2...und die 2 tabellen haben unterschiedliche spaltennamen...
Dominik
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#19

Re: Umgang mit Datenbank

  Alt 5. Nov 2006, 18:27
Sorry hab das mit Tabelle2 überlesen. TADOQuery kann immer nur ein Statement auf einmal ausführen. Für mehrere brauchst du TADOCommand.
Markus Kinzler
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 2     12   


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:29 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