AGB  ·  Datenschutz  ·  Impressum  







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

Werte in Datenbank eingeben

Ein Thema von Thomas F · begonnen am 2. Feb 2009 · letzter Beitrag vom 3. Feb 2009
Antwort Antwort
Seite 1 von 2  1 2      
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#1

Werte in Datenbank eingeben

  Alt 2. Feb 2009, 21:55
Datenbank: Access • Zugriff über: ADO
Wie kann ich in meine Access-Datenbank Werte eingeben ????

Ich bekomm immer ne Fehlermeldung
Ich find keinen Fehler
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var commando:string;
begin
 commando := 'INSERT INTO Emails (Nr,Email,Herkunft) VALUES('+inttostr(1)+','+memo1.lines.strings[1]+','+Form2.edit1.text+')';
ADOCommand1.CommandText := commando;
ADOCommand1.Execute;

end;
so hab ich die Felder definiert
ADOConnection1.Execute('CREATE TABLE Emails (Nr COUNTER NOT NULL PRIMARY KEY,Email varchar(40),Herkunft varchar(40),Datum DATE,Bemerkung varchar(40))');
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von FBrust
FBrust

Registriert seit: 4. Okt 2002
Ort: Saarbrücken
654 Beiträge
 
Delphi 10.4 Sydney
 
#2

Re: Werte in Datenbank eingeben

  Alt 2. Feb 2009, 22:10
Hallo,

wenn COUNTER gleichbedeutend mit Auto-Increment ist, brauchst du das Feld "Nr" nicht zu belegen, das geschieht dann automatisch in der Datenbank.


Wie lautet denn die Fehlermeldung?

Übrigens statt

Delphi-Quellcode:
commando := 'INSERT INTO Emails (Nr,Email,Herkunft) VALUES('+inttostr(1)+','+memo1.lines.strings[1]+','+Form2.edit1.text+')';
ADOCommand1.CommandText := commando;
kannst Du auch

ADOCommand1.CommandText := 'INSERT INTO Emails (Nr,Email,Herkunft) VALUES('+inttostr(1)+','+memo1.lines.strings[1] +','+Form2.edit1.text+')'; schreiben.

Gruß
Frank
"Ich habe Dinge gesehen, die ihr Menschen niemals glauben würdet. Gigantische Schiffe, die brannten, draußen vor der Schulter des Orion" - Roy Batty
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#3

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 06:10
Fehlermeldung:
__________________________________________________ _____________________________________
Im Project ......ist eine Exception der Klasse EOleException mit der Meldung 'Ein Parameterobjekt
ist nicht ordnungsgemäß definiert.Inkonsistente oder unvollständige Informationen wurde abgegeben' aufgetreten.

__________________________________________________ ________________________________________

Das Feld 'Nr' hab ich diesmal weggelassen

Delphi-Quellcode:
ADOCommand1.CommandText := 'INSERT INTO Emails (Email,Herkunft) VALUES('+memo1.lines.strings[1] +','+Form2.edit1.text+')';
ADOCommand1.Execute;
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

Registriert seit: 15. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#4

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 08:34
Strings müssen in SQL in Hochkommas gesetzt werden.
Dazu kann man die Funktion QuotedStr() verwenden.
Delphi-Quellcode:
procedure TForm3.Button1Click(Sender: TObject);
var commando:string;
begin
  commando := 'INSERT INTO Emails (Nr,Email,Herkunft) VALUES('+inttostr(1)+','+QuotedStr(memo1.lines.strings[1])+','+QutotedStr(Form2.edit1.text)+')';
  
  // ein ganz einfacher Trick: man lässt sich eine SQL-Anweisung vorher anzeigen
  // dann sieht man ganz leicht, ob daran noch etwas falsch ist
  ShowMessage(commando);

  ADOCommand1.CommandText := commando;
  ADOCommand1.Execute;
end;
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#5

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 08:37
Ja, Danke

Ich probier das mal aus !
Gruß

Thomas
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#6

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 08:45
Zitat von sx2008:
Strings müssen in SQL in Hochkommas gesetzt werden.
Dazu kann man die Funktion QuotedStr() verwenden.
Das ist zwar möglich, aber davon ist abzuraten.

Benutze für variable Inhalte eines SQL-Befehls niemals String-Verknüpfung, sondern immer Parameter!

Mit der Forumssuche nach "Parameter" bekommst Du viele Hinweise dazu. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#7

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 09:51
Zitat von Jürgen Thomas:
Zitat von sx2008:
Strings müssen in SQL in Hochkommas gesetzt werden.
Dazu kann man die Funktion QuotedStr() verwenden.
Das ist zwar möglich, aber davon ist abzuraten.

Benutze für variable Inhalte eines SQL-Befehls niemals String-Verknüpfung, sondern immer Parameter!

Mit der Forumssuche nach "Parameter" bekommst Du viele Hinweise dazu. Jürgen
Ja, Danke

Ich glaube mit UPDATE ist besser, weil die neuen Daten gleich in der Tabelle angezeigt werden, oder ?

Nimmt man da auch Parameter ???
Gruß

Thomas
  Mit Zitat antworten Zitat
Jürgen Thomas

Registriert seit: 13. Jul 2006
Ort: Berlin
750 Beiträge
 
#8

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 09:56
Zitat von Thomas F:
Zitat von Jürgen Thomas:
Benutze für variable Inhalte eines SQL-Befehls niemals String-Verknüpfung, sondern immer Parameter!
Ich glaube mit UPDATE ist besser ... Nimmt man da auch Parameter ???
Ich habe bewusst "immer" geschrieben. Das gilt für alle SQL-Befehle, in die variable Inhalte eingefügt werden sollen. Jürgen
#D mit C# für NET, dazu Firebird
früher: Delphi 5 Pro, Delphi 2005 Pro mit C# (also NET 1.1)
Bitte nicht sauer sein, wenn ich mich bei Delphi-Schreibweisen verhaue; ich bin inzwischen an C# gewöhnt.
  Mit Zitat antworten Zitat
Thomas F

Registriert seit: 3. Sep 2008
Ort: Nürnberg
281 Beiträge
 
Delphi 2005 Architect
 
#9

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 11:31
Mal ne andere Frage

Wenn ich einen Datensatz lösche , dann wird der Datensatz zwar in der Tabelle gelöscht,
aber der Counter (Zähler=Feld1) hat immer noch denselben Wert.
wenn ich z.B. 30 Einträge in der Datenbank habe, und lösche dann 10 Datensätze,
dann sind zwar nur noch 20 Sätze sichtbar, aber die haben die Nummern 10-30 , komischerweise ?????

Form1.DBGrid1.DataSource.Dataset.Delete;
Gruß

Thomas
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#10

Re: Werte in Datenbank eingeben

  Alt 3. Feb 2009, 12:18
Das ist völlig normal, die Schlüssel werden beim Löschen ja nicht aktualisiert (es handelt sich ja anscheinend um ein AutoInc-Feld).
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 00:56 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