AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi AutoInc bei SQL-Insert
Thema durchsuchen
Ansicht
Themen-Optionen

AutoInc bei SQL-Insert

Ein Thema von Angel4585 · begonnen am 13. Apr 2006 · letzter Beitrag vom 13. Apr 2006
Antwort Antwort
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#1

AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 10:57
Datenbank: Paradox • Version: 7 • Zugriff über: TQuery
Hallo zusammen,

da ich jetzt endlich weis wie ich mit Queries in ne DB schreibe, tun sich auch schon die ersten Fehler auf.

der Erste ist gleich mal folgender:

ich habe die Felder

ID Typ AUTOINC
Bez Typ VarChar(100);

wenn ich jetzt mit insert einen neuen DS anlege, sollte dich das Feld ID automatisch erhöht werden oder?
Bei mir geschieht das nicht. Muss ich dazu noch was bestimmtes angeben?

Jetzt sieht es gerade so aus. ich vermute ich muss bei Values was reinschreiben, aber was?

SQL-Code:
insert into "Artikel.db"
  (ID, Bez)
values
  (:ID, :Bez)
MfG
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
Benutzerbild von RavenIV
RavenIV

Registriert seit: 12. Jan 2005
Ort: Waldshut-Tiengen
2.875 Beiträge
 
Delphi 2007 Enterprise
 
#2

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:04
du darfst der Query die ID nicht mitgeben, weil die automatisch erhöht wird.
Klaus E.
Linux - das längste Text-Adventure aller Zeiten...
Wer nie Linux mit dem vi konfiguriert hat, der hat am Leben vorbei geklickt.
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#3

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:05
ja aber wenn ich sie nicht mitgebe wird sie trotzdem nicht erhöht...

ich glaub das Problem iss nich das SQL-Statement, sondern das "Post", das funzt scheinbar nciht richtig.. der schreib garnix rein
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:49
Zeig mal den ganzen Code des Inserts.
Markus Kinzler
  Mit Zitat antworten Zitat
marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 
#5

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:54
Hallo Martin,

Query und Post - vermischst du da vielleicht etwas?

Delphi-Quellcode:
procedure TDemoForm.ButtonClick(Sender: TObject);
begin
  with Query do
  begin
    SQL.Text := 'INSERT INTO artikel(bez) values(:bez)';
    Params.ParamValues['bez'] := 'es geht doch';
    ExecSQL;
  end;

  with Query do
  begin
    SQL.Text := 'SELECT * FROM artikel WHERE 1 = 0';
    RequestLive := true;
    Open;
    Append;
    FieldValues['bez'] := 'oder so';
    Post;
    Close;
  end;
end;
Grüße vom marabu
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#6

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:57
Zuerst wird die Tabelle mit:
SQL-Code:
'CREATE TABLE "Artikel.db"('+
         'ID AUTOINC,'+
         'Bez VARCHAR(10),'+
         'PRIMARY KEY(ID));';
erstellt.

Ich hab eine Query die mir die Tabelle öffnet und anzeigt:
SELECT * FROM "Artikel.db" Dann eine TUpdateSQL - Kompo in deren Insertteil das steht:

insert into "Artikel.db" (sollte reichen oder? )

dieser Insertteil wird - wenn ich das recht verstanden hab - automatisch bei einem Append aufgerufen.
danach schreibe ich in ein DBEdit etwas rein undlöse ein Post aus. Im grid wird das Eingegebene angezeigt, allerdings steht das nicht in der physikalischen tabelle drin, Heisst: Wenn ich das Prog schliesse sind die Daten wieder weg.


diese TUpdateSQL - Kompo ist der Query zugeordent. Ausserdem ist die Eigenschaft CachedUpdate = True, da sonst nur lesen ist bei der Query.
UpdateMode der Query ist upWhereAll, RequestLive ist im Moment False, bringt aber nix wenn ichs auf True setze.
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 11:59
insert into "Artikel.db"; reicht nicht. Verwende am besten die Funktion der IDE um die Querystrings richtig zu setzen. (Einfach Doppelklick auf Kompo).
Markus Kinzler
  Mit Zitat antworten Zitat
Angel4585

Registriert seit: 4. Okt 2005
Ort: i.d.N.v. Freiburg im Breisgau
2.199 Beiträge
 
Delphi 2010 Professional
 
#8

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 12:16
Zitat von mkinzler:
insert into "Artikel.db"; reicht nicht. Verwende am besten die Funktion der IDE um die Querystrings richtig zu setzen. (Einfach Doppelklick auf Kompo).
Die macht dann aber das Autoinc-feld au mit rein

Edit: und egal bei welcher Schlüssel / Aktualisierungs konstelation: Es geht nicht...
Martin Weber
Ich bin ein Rüsselmops
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

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

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 12:21
Die Funktion der IDE ist rein "mechanisch". In diesem Fall mußt du das Feld per Hand aus Abfrage entfernen. Beim Update kannst du eigentlich auch alle Felder außer diesem aus der where-clause entfernen.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von Jelly
Jelly

Registriert seit: 11. Apr 2003
Ort: Moestroff (Luxemburg)
3.741 Beiträge
 
Delphi 2007 Professional
 
#10

Re: AutoInc bei SQL-Insert

  Alt 13. Apr 2006, 20:28
Auch wenn du das mit dem Insert Befehl jetzt hinkriegst, so wirst Du weiterhin das Problem haben, dass nach dem Posten dir die ID unbekannt bleiben wird. Der Grund, weil erst nach dem Post die ID im DB System erstellt wird, und Du in Delphi aber keinen Rückwert nach dem Post kriegst. Was da hilft ist in der Tat einfach ein Close -> Open.
  Mit Zitat antworten Zitat
Antwort Antwort


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 06:27 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