AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Übergabe Daten aus MDB an SQL ADOQuery

Ein Thema von Micha-Z · begonnen am 30. Nov 2009 · letzter Beitrag vom 2. Dez 2009
Antwort Antwort
Micha-Z

Registriert seit: 24. Nov 2009
5 Beiträge
 
#1

Übergabe Daten aus MDB an SQL ADOQuery

  Alt 30. Nov 2009, 15:50
Hallo Leute,

bräuchte mal etwas Hilfe

wie bekommt man das hin, das man Daten von einem Query
an ein anderes übergibt?

Ich denke das Thema gab es sicher schon oft.
Oder besser die Frage der DatenSyncronisierung.
Will jetzt auch keinen damit langweilen oder nerven.
Nur konnte ich keine Lösungsmöglichkeit finden.

Zur Zeit habe ich für beide Datenbanken eine Anbindung
über jeweils einen ADOQuery. Diese nutze ich für das anlegen
und Löschen von Spalten.

Nun suche ich eine Möglichkeit die Daten in eine Richtung
abzugleichen. Vielleicht ist die Idee für den Weg auch Mist!?
Vielleicht gibt es eine einfachere Lösung?!?! ... HILFEEee

- arbeite mit Delphi 2005
- VCL
- und ich bin Neuling

Gruß
Micha

[edit=Phoenix]Das ist mit Sicherheit kein Delphi für .NET. Geändert. Mfg, Phoenix[/edit]
  Mit Zitat antworten Zitat
Benutzerbild von sx2008
sx2008

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

Re: Übergabe Daten aus MDB an SQL ADOQuery

  Alt 1. Dez 2009, 00:35
Du hast zwei Datenbanken (A und B) und möchtest nun den Inhalt einer Tabelle in A
mit der strukturgleichen Tabelle in Datenbank B synchronisieren,
so dass TabB den Inhalt von TabA bekommt?

Die einfachste Lösung ist den Inhalt der Tabelle in B zu löschen
und alle Daten aus A neu einzukopieren.

Es gibt noch komplizierte Verfahren:
1.) alle Datensätze in TabB löschen, die es in TabA nicht gibt
2.) alle Datensätze von TabA durchlaufen und prüfen, ob es den Datensatz in TabB gibt
Falls Datensatz nicht vorhanden: Datensatz einfügen; falls Datensatz verschieden: Datensatz in TabB updaten
Man braucht dazu zwingend einen Primärschlüssel.
Aber ein Anfänger dürfte mit der Aufgabe überfordert sein.
fork me on Github
  Mit Zitat antworten Zitat
Micha-Z

Registriert seit: 24. Nov 2009
5 Beiträge
 
#3

Re: Übergabe Daten aus MDB an SQL ADOQuery

  Alt 1. Dez 2009, 14:28
Hallo "sx2008"

danke erst mal für deine Antwort !!!

die Tabelle in der DB-B löschen ( falls vorhanden )
und neu anlegen, würde zunächst mal reichen

letzteres war eher das was ich nicht hören wollte!
auch wenn es sicher berechtigt ist ....

könnte man es über Textboxen lösen?
in dem man aus der DB-A die Daten
in das jeweilige Feld übernimmt und sie
dann in ein "SQL UPDATE "Tabellen_Name"
SET Spalte1 = [Wert1], Spalte2 = [Wert2]"
übernimmt und in die DB-B schreibt ???
  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: Übergabe Daten aus MDB an SQL ADOQuery

  Alt 1. Dez 2009, 22:51
Um alle Datensätze einer ADO Tabelle zu löschen:
Delphi-Quellcode:
procedure DeleteADOTable(con:TADOConnection; const tablename:string);
begin
   Assert(Assigned(con));
   con.execute('DELETE FROM '+tablename);
end;
Um einen Datensatz zu kopieren:
Delphi-Quellcode:
procedure CopyRecord(a,b:TDataset);
var
   i : integer;
   f : TField;
begin
   for i:=0 to a.fields.Count-1 do
   begin
      f := b.FindField(a.Fields[i].FieldName);
      if Assigned(f) then
         f.Value := a.Fields[i].Value;
   end;
end;
Um ALLE Datensätze zu kopieren:
Delphi-Quellcode:
procedure CopyAllRecords(a,b:TDataset);
begin
   while not a.Eof do
   begin
      b.Append; // neuen, leeren Datensatz anhängen
      CopyRecord(a,b);
      b.Post; // abschicken
      a.Next;
   end;
end;
Und jetzt noch das Ganze zusammenbauen.
Du brauchst jeweils eine ADOConnection für jede Datenbank.
1.) alte Daten löschen
DeleteADOTable(ADOConnectionA, 'MeineTabelle'); 2.) zwei ADOQuerys erstellen
Delphi-Quellcode:
ADOQueryA.SQL.Text := 'SELECT * FROM MeineTabelle';
ADOQueryA.Open;
Das Gleiche für ADOQueryB und jeweils das Property Connection zuweisen.
3.) Daten kopieren
CopyAllRecords(ADOQueryA, ADOQueryB); Das wäre so ganz grob das "Kochbuch".
fork me on Github
  Mit Zitat antworten Zitat
Micha-Z

Registriert seit: 24. Nov 2009
5 Beiträge
 
#5

Re: Übergabe Daten aus MDB an SQL ADOQuery

  Alt 2. Dez 2009, 15:33
Hi sx2008

danke erst mal für deine Mühe und die vielen Infos!!!
mal schaun ob ich damit umgehen kann ...
werde es in Teilen mal testen

Gruß
Micha
  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 21:24 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