AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi ADO, Access und das alles vergleichen
Thema durchsuchen
Ansicht
Themen-Optionen

ADO, Access und das alles vergleichen

Ein Thema von motu · begonnen am 20. Jul 2004 · letzter Beitrag vom 21. Jul 2004
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#1

ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:36
Hallo,

ich habe ein Programm, das bisher über ADO neue Datensätze in eine AccessDB einfügt. Nun ist gefordert, das vor dem Eintrag in der DB geschaut wird, ob ein ähnlicher Datensatz schon vorhanden ist. Wenn ja, soll er angezeigt werden und auf Wunsch überschrieben werden.

Vorschläge?
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.011 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#2

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:39
Ein DataSet mit dem passenden SQL, wenn Satz gefunden, dann ändern...
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#3

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:44

also det SQL-Statement krieg ich ja noch hin, aber zu allem anderen bin ich heut kognitiv nicht mehr fähig und generell sind meine Delphifähigkeiten für deine Aussage nicht ausgeprägt genug.

Zu deutsch: Schön wär der fertige Code.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.011 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#4

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:51
Ein ADODataSet auf's Form usw...
Delphi-Quellcode:
try
  ADODataSet1.CommandText := 'SELECT hier, dort FROM irgendwas WHERE dies AND das';
  ADODataSet1.Open;
  if ADODataSet1.RecordCount > 0 then
  begin
    ADODataSet1.Edit;
    ADODataSet1.FieldValues['hier'] := 'irgendwas';
    ADODataSet1.FieldValues['dort'] := 'irgendwas anderes';
    ADODataSet1.Post;
  end;
finally
  ADODataSet1.Close;
end;
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#5

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:56
Des sieht doch jut aus.
Danke erst einmal. Ich versuch das grad mal ein bisschen anzupassen.
  Mit Zitat antworten Zitat
Benutzerbild von Stevie
Stevie

Registriert seit: 12. Aug 2003
Ort: Soest
4.011 Beiträge
 
Delphi 10.1 Berlin Enterprise
 
#6

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 14:58
Oh, btw... HERZLICH WILLKOMMEN IN DER
Stefan
“Simplicity, carried to the extreme, becomes elegance.” Jon Franklin

Delphi Sorcery - DSharp - Spring4D - TestInsight
  Mit Zitat antworten Zitat
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#7

Re: ADO, Access und das alles vergleichen

  Alt 20. Jul 2004, 15:08
Hmm. Habe grad gemerkt, das ich gar kein DataSet habe, bisher ging alles über ADOTable.
Da muß ich wohl noch eins reinbasteln.

Aber mir ist eingefallen, wie kann ich denn den Output in einer Messagebox ausgeben?

Aber jetzt jeh ick erstmal heeme. bis morgen.
  Mit Zitat antworten Zitat
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#8

Re: ADO, Access und das alles vergleichen

  Alt 21. Jul 2004, 07:11
Nun stellt sich die Frage, wie bekomme ich meine Variablen in den SQL Ausdruck, und wie kann ich, sofern es passende Datensätze gibt, diese dem Nutzer anzeigen?
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: ADO, Access und das alles vergleichen

  Alt 21. Jul 2004, 07:32
Zitat von motu:
Nun stellt sich die Frage, wie bekomme ich meine Variablen in den SQL Ausdruck, und wie kann ich, sofern es passende Datensätze gibt, diese dem Nutzer anzeigen?
Damit dies sauber funktioniert brauchst du ein (oder mehrere) Primärschlüsselfeld (z.B. Kundennummer).
So wird ein Datensatz eindeutig identifiziert.
Delphi-Quellcode:
  ADOQuery1.SQL.Text := 'SELECT * FROM Tabelle WHERE pkeyfeld=:pkeyfeld';
  ADOQuery1.Parameters.ParamValues['pkeyfeld'] := akt_pkey;
  ADOQuery1.Open;
  // die Abfrage kann entweder leer sein oder liefert genau 1 Datensatz
  if ADOQuery1.IsEmpty then
  begin
    // neuen Datensatz einfügen
    ADOQuery1.Insert;
    ADOQuery1.FieldValues['pkeyfeld'] := akt_pkey;
    ADOQuery1.FieldValues['Feld2'] := 'irgendwas anderes';
    ADOQuery1.Post;
  end
  else
  begin
     // form2 ist ein Hilfsformular, dass die Datenfelder eines Datensatzen anzeigt
     // der Benutzer kann entweder OK oder Abbrechen klicken
     form2.Dataset := ADOQuery1;
     if form2.ShowModal = mrOK then
     begin
       // bestehender Datensatz überschreiben
       ADOQuery1.Edit;
       // alle Felder bestücken mit Ausnahme des pkeyfeld
       ADOQuery1.FieldValues['Feld2'] := 'irgendwas anderes';
       ADOQuery1.Post;
     end
     else
        ShowMessage('Daten wurde nicht überschrieben'); // später weglassen
  end;
  ADOQuery1.Close;
Andreas
  Mit Zitat antworten Zitat
Benutzerbild von motu
motu

Registriert seit: 20. Jul 2004
76 Beiträge
 
Delphi 6 Professional
 
#10

Re: ADO, Access und das alles vergleichen

  Alt 21. Jul 2004, 07:40
Danke, aber geht auch ohne Schlüssel? Ich hab zwar einen, aber den kann ich nicht benutzen.
Es sollen Werte in zwei Spalten gesucht werden. In einer Spalte der genaue Werte in der anderen mit einer Toleranz von 10% (SQL-Statement hab ich schon). Wenn dem so ist soll der geasamte Datensatz angezeigt werden, mit der Option des überschreibens, ansonsten soll ein neuer hinzugefügt werden. Das Einfügen haben wir ja schon.
  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 11:15 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