![]() |
MsSql Daten in ClientDataSet schreiben
Hallo,
ich versuche hier schon seit Stunden die Daten einer MsSql - Tabelle in ein ClientDataSet zu schreiben. Einiges hab ich auch schon geschafft
Delphi-Quellcode:
Dieser Code läuft ohne Exceptions durch und die Verbindung steht auch davar query : TADOQuery; begin query := TADOQuery.Create(NIL); query.Connection:= TADOConnection.Create(NIL); query.Connection.ConnectionString:= ' ... '; // Der war mir zu lange zum kopieren query.SQL.Add('SELECT * FROM ANTRAG'); query.Open; end;
Delphi-Quellcode:
die richtigen Tabellen zurückliefert.
query.connection.GetTableNames(tableNames)
Aber wie komm ich jetzt an die Ergebnisse der Abfrage um sie ins ClientDataSet zu schreiben ?? Oder gibt es da vielleicht schon Methoden von TClientDataSet die das auf einen Schlag können?? Bin für jede Hilfe Dankbar. Hilflos schlock |
Re: MsSql Daten in ClientDataSet schreiben
Welche Abfrage? Du hast doch deinem Query noch gar kein SQL-Statement mitgegeben, sondern fragst lediglich über die Methode GetTableNames die Tabellennamen deiner Datenbank ab.
Füge mal ein SELECT-Statement wie etwa
Code:
wobei <Owner> meistens "dbo" ist, in der Eigenschaft SQL deiner Query ein und führe die Query mit
SELECT * FROM <Owner>.<Tabellenname>
Code:
aus.
Query.Open
Damit du das Ergebnis deiner Abfrage dann ausgeben kannst benötigst du dann noch eine DataSource, die mit deiner Query verbunden ist und z.B. ein DBGrid, das mit der DataSource verbunden wird. Grüße Mikhal |
Re: MsSql Daten in ClientDataSet schreiben
Hi,
ja, Clientdatasets können daten aus einem Dataset, sowohl innerhalb eines Prozesses, als auch über Prozeß- und Rechnergrenzen hinweg, oder sogar über das Internet saugen und updaten. - Füge einfach noch einen TDatasetprovider hinzu - Wähle die Adoquery als Dataset aus (Beachte meine sonstigen Warnnungen ![]() - Wähle den Datasetprovider im Clientdataset aus - Setze im Clientdataset Active auf true, und schon sind die Daten im Clientdataset Grüsse Woki |
Re: MsSql Daten in ClientDataSet schreiben
Bei ADO wäre dieser Umweg über ClientDataset nicht nötig. Das ADO-Recordset kann auch als disconnected Dataset über Rechnergrenzen (auch z.B. über HTTP übers Internet). Beispiel im
![]() |
Re: MsSql Daten in ClientDataSet schreiben
Zitat:
Nur der Hinweis, daß es trotzdem Gründe gibt, dem Clientdataset den Vorzug zu geben. Grüsse Woki |
Re: MsSql Daten in ClientDataSet schreiben
Phantastisch,
klappt wunderbar. Vielen Dank Woki. :hello: Hier, für diejenigen die das auch mal machen müssen, noch der fehlende Quellcode:
Delphi-Quellcode:
Ich benutze übrigens das Clientdataset als Abstraktionsschicht zwischen Datenbankstrukturen
var
dataSetProvider: TDataSetProvider; ClientDataSet : TClientDataSet; begin dataSetProvider:= TDataSetProvider.Create(NIL); dataSetProvider.DataSet:= query; // query kommt von obigem Beispiel ClientDataSet.SetProvider( dataSetProvider ); ClientDataSet.Active:= TRUE; end; und den Strukturen die mein Programm zur Darstellung benutzt, da ich gedenke später noch weitere Datenbanken anzubinden. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:30 Uhr. |
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 by Thomas Breitkreuz