Datenbank: MySQL • Version: 5 • Zugriff über: dbexpress
TClientDataSet mit TDataSetProvider verbinden
Hi,
ich versuche gerade eine Verbindung mit meinem MySQL-Server aufzubauen. Scheitere aber daran, ein TClientDataSet mit einem TDataSetProvider zu verbinden.
Delphi-Quellcode:
Wenn ich versuche das auszuführen, bekomme ich immer folgende Fehlermeldung:
//DataSetProvider
provider := TDataSetProvider.Create(Self); provider.DataSet := query; provider.Constraints := true; provider.Exported := true; provider.Name := 'mysqlProvider'; provider.ResolveToDataSet := false; provider.UpdateMode := upWhereAll; //DataSet dataset := TClientDataSet.Create(Self); dataset.Active := false; dataset.AutoCalcFields := true; dataset.ObjectView := true; dataset.StoreDefs := false; dataset.ReadOnly := false; dataset.AggregatesActive := false; dataset.DisableStringTrim := false; dataset.FetchOnDemand := true; dataset.ProviderName := provider; //Es geht hauptsächlich um diese Zeile. Diese Zeile wird beim Ausführen immer rot eingefärbt. dataset.Name := 'mysqlDataSet'; dataset.Active := true; [Pascal Fehler] Unit1.pas(92): E2010 Inkompatible Typen: 'string' und 'TDataSetProvider' Aber warum geht es denn nicht. Ich habe auch ein TSQLConnection und ein TSQLQuery. Wenn ich die so verbinde meckert er nicht. Er meckert nur bei dem. Wisst ihr woran es liegt. Vielen Dank für eure Hilfe. Mit freundlichen Grüßen Flobbie |
Re: TClientDataSet mit TDataSetProvider verbinden
1. die fragliche Zeile erfordert einen String; den Namen des providers und nicht das Objekt eines Providers.
2.) Generell: Warum arbeitest du an der Stelle mit einem TClientDataset? Tdatasource und TTable oder TQuery wuerde ich nehmen. |
Re: TClientDataSet mit TDataSetProvider verbinden
Hi,
danke für deine Antwort.
Delphi-Quellcode:
Ich habe so angefangen.
//SQL Verbindung
mysql := TSQLConnection.Create(Self); mysql.Connected := false; mysql.ConnectionName := 'OpenMySQL50'; mysql.DriverName := 'OpenMySQL50'; mysql.LoginPrompt := false; mysql.Params.Values['DriverName'] := 'OpenMySQL50'; mysql.Params.Values['HostName'] := 'IP'; mysql.Params.Values['Database'] := 'datenbank'; mysql.Params.Values['User_Name'] := 'username'; mysql.Params.Values['Password'] := 'passwort'; mysql.Params.Values['BlobSize'] := '-1'; mysql.GetDriverFunc := 'getSQLDriverMYSQL50'; mysql.KeepConnection := true; mysql.LibraryName := 'dbxopenmysql50.dll'; mysql.LoadParamsOnConnect := false; mysql.Name := 'mysqlVerbindung'; mysql.VendorLib := 'libmysql.dll'; mysql.Connected := true; mysql.Open; //Query query := TSQLQuery.Create(Self); query.Active := false; query.MaxBlobSize := 0; query.ObjectView := false; query.ParamCheck := true; query.SQLConnection := mysql; query.SQL.Text := 'SELECT en FROM en_de WHERE id=1'; query.GetMetadata := false; query.Name := 'mysqlQuery1'; query.NumericMapping := false; query.Active := true;
Delphi-Quellcode:
So bekomme ich keine Fehlermeldung mehr. Aber er zeigt nichts an.
//DataSource
datasource := TDataSource.Create(Self); datasource.Enabled := false; datasource.AutoEdit := true; datasource.Name := 'mysqlDataSource'; datasource.DataSet := query; datasource.Enabled := true; //Englischer Text texteng := TDBText.Create(Self); texteng.Enabled := false; texteng.DataField := 'en'; texteng.DataSource := datasource; texteng.Align := alNone; texteng.AlignWithMargins := false; texteng.AutoSize := true; texteng.Height := 57; texteng.Left := 104; texteng.Top := 96; texteng.Width := 121; texteng.Enabled := true; mysql.Close; mysql.Free; Ich habe dann nochmal ein TDBText im Formular erstellt und versucht es mit
Delphi-Quellcode:
mit Inhalt zu füllen, aber es bleibt auch leer. Warum funktioniert das denn schon wieder nicht.
DBText1.DataSource := datasource;
Warum kann das nicht einfach mal funktionieren? Ich danke euch für eure Hilfe. Mit freundlichen Grüßen Flobbie |
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:04 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