Hallo,
ich muss das Thema noch mal hervorholen. Ich habe noch 2 Probleme bzw. Fragen.
So folgenden Code nutze ich:
Delphi-Quellcode:
class function TSQLHelper.getDataAdapter(aArt:
string): IDbDataAdapter;
begin
if (aArt = '
MySQL')
then
result := MySqlDataAdapter.Create()
else if (aArt = '
Firebird')
then
result :=
nil// FbConnection.Create(aConStr)
else if (aArt = '
SQL-Server')
then
result := SqlDataAdapter.Create()
else if (aArt = '
Access')
then
result := OdbcDataAdapter.Create()
// Wie geht's bei Access?
else if (aArt = '
Datenbank über ODBC')
then
result := OdbcDataAdapter.Create();
if (result =
nil)
then
Exception.Create('
Ungültige Datenbankart');
end;
class procedure TSQLHelper.getDataSet(
var Res : DataSet;
sql, ConStr, aArt :
String);
var
cmd : IDbCommand;
con : IDbConnection;
dataAdapter : IDbDataAdapter;
DSet : DataSet;
begin
con := getConnection(ConStr, aArt);
cmd := con.CreateCommand();
cmd.CommandText :=
sql;
dataAdapter := getDataAdapter(aArt);
dataAdapter.SelectCommand := cmd;
dataAdapter.Fill(Res);
end;
Die Methode getConnection ist eigentlich wie getDAtaAdapter aufgebaut und poste ich der Übersichtlichkeit halber mal nicht.
Momentan teste ich nur mit
ODBC, auch das dynamische Laden habe ich noch nicht integriert.
Das Dataset Res, das der Methode getDataSet übergeben wird, wird quasi gefüllt und ist mit dem DataGrid verbunden.
Doch wie kann ich die Daten in eine bestimmte Table des DataSets speichern?
Außerdem wäre es interessant, wie ich dann genau die DataSEt.Table im DataGrid anzeigen kann. Es erscheint ja normalerweise eine Auswahl aller Tables, bei der man sich erst eine aussuchen kann.