Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi ADO, Access und das alles vergleichen (https://www.delphipraxis.net/26220-ado-access-und-das-alles-vergleichen.html)

shmia 21. Jul 2004 07:53

Re: ADO, Access und das alles vergleichen
 
Zitat:

Zitat von motu
Danke, aber geht auch ohne Schlüssel? Ich hab zwar einen, aber den kann ich nicht benutzen.

Es geht schon, du musst halt damit rechnen, mehr als einen Treffer (=Datensatz) zu landen.
Also musst du bei vorhandenen Datensätzen diese in einem DBGrid anzeigen lassen.
Der Benutzer wählt dann den Datensatz im Grid, den er überschreiben möchte und klickt dann
OK oder Abbrechen.
Das Formular zum Auswählen des Datensatzes, der überschrieben werden soll ist ganz einfach
zusammengeklickt: ein DBGrid, ein DataSource, 2 BitButtons mit ModalResult mrOK und mrAbort

motu 21. Jul 2004 07:54

Re: ADO, Access und das alles vergleichen
 
Na dann probier ich das mal aus.

Danke.

motu 21. Jul 2004 11:19

Re: ADO, Access und das alles vergleichen
 
Sooo.

Delphi-Quellcode:
...
 begin
     form2.Dataset := ADOQuery1;
     if form2.ShowModal = mrOK then
...

Nun bekomm ich folgenden Meldung:

[Fehler] Undefinierter Bezeichner: 'Dataset1'

:?: :?: :?:

motu 21. Jul 2004 13:43

Re: ADO, Access und das alles vergleichen
 
Liste der Anhänge anzeigen (Anzahl: 1)
Delphi-Quellcode:
begin
  SQLDurchmesser1 := Nutzdurchmesser.Value - (Nutzdurchmesser.Value*0.1);
  SQLDurchmesser2 := Nutzdurchmesser.Value + (Nutzdurchmesser.Value*0.1);

  SQLStatement1 := 'SELECT Probeglaeser.SollRadius, Probeglaeser.IstRadius, Probeglaskennzeichnung.Kennzeichnungsname, Probeglaeser.PGlasKonvex, Probeglaeser.PGlasKonkav, Probeglaeser.PruefdmKonkav, ';
  SQLStatement2 := 'Probeglaeser.PruefdmKonvex, Messart.Messartname, Probeglaeser.Pruefdatum, Probeglaeser.Pruefer, Probeglaeser.Bemerkungen, Probeglaeser.Passe, Probeglaeser.PHDifferenz FROM Probeglaeser, Messart, ';
  SQLStatement3 := 'Probeglaskennzeichnung WHERE Probeglaeser.IstRadius = DBIstRadius AND ((Probeglaeser.PGlasKonvex >= SQLDm1 AND Probeglaeser.PGlasKonvex <= SQLDm2) OR (Probeglaeser.PGlasKonkav ';
  SQLStatement4 := '>= SQLDm1 AND Probeglaeser.PGlasKonkav <= SQLDm2)) AND Probeglaeser.Kennzeichnung = Probeglaskennzeichnung.ID AND Probeglaeser.Messart = Messart.ID ORDER BY Messart.ID;';

  ADOQuery1.SQL.Text := 'SQLStatement1 + SQLStatement2 + SQLStatement3 + SQLStatement4';
  ADOQuery1.Parameters.ParamValues['SQLDm1'] := SQLDurchmesser1;
  ADOQuery1.Parameters.ParamValues['SQLDm2'] := SQLDurchmesser2;
  ADOQuery1.Open;
doch leider bekomm ich den unten angefügten fehler

shmia 21. Jul 2004 15:19

Re: ADO, Access und das alles vergleichen
 
Zitat:

Zitat von motu
Delphi-Quellcode:
  SQLStatement1 := ....
  SQLStatement2 := ....
  ....
 
  ADOQuery1.SQL.Text := 'SQLStatement1 + SQLStatement2 + SQLStatement3 + SQLStatement4'; //*****
doch leider bekomm ich den unten angefügten fehler

Hast du bei deinem Delphi nicht das Syntaxhighlighting eingeschaltet ??
Dann müsste dir doch auffallen, dass obige markierte Anweisung falsch ist. (die Hochkommas!!)

motu 21. Jul 2004 15:29

Re: ADO, Access und das alles vergleichen
 
Zitat:

Hast du bei deinem Delphi nicht das Syntaxhighlighting eingeschaltet ??
Dann müsste dir doch auffallen, dass obige markierte Anweisung falsch ist. (die Hochkommas!!)
Doch schon und jetzt wo du es sagst, erinnere ich mich auch an mein ähnliches Messageboxproblem. Inzwischen habe ich es folgermaßen gelöst:

Delphi-Quellcode:
  ADOQuery1.SQL.Text := 'SELECT * FROM Probeglaeser, Messart, Probeglaskennzeichnung WHERE Probeglaeser.IstRadius = '+ floattostr(DBIstRadius) +' AND ((Probeglaeser.PGlasKonvex >= '+ floattostr(SQLDurchmesser1) +' AND Probeglaeser.PGlasKonvex <= '+ floattostr(SQLDurchmesser2) +') OR (Probeglaeser.PGlasKonkav >= '+ floattostr(SQLDurchmesser1) +' AND Probeglaeser.PGlasKonkav <= '+ floattostr(SQLDurchmesser2) + ')) AND Probeglaeser.Kennzeichnung = Probeglaskennzeichnung.ID AND Probeglaeser.Messart = Messart.ID ORDER BY Probeglaeser.IstRadius;';
und det jet erstmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 17:34 Uhr.
Seite 2 von 2     12   

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