AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi TClientDataSet mit TDataSetProvider verbinden
Thema durchsuchen
Ansicht
Themen-Optionen

TClientDataSet mit TDataSetProvider verbinden

Ein Thema von flobbie · begonnen am 3. Feb 2008 · letzter Beitrag vom 3. Feb 2008
Antwort Antwort
flobbie

Registriert seit: 24. Jan 2008
7 Beiträge
 
#1

TClientDataSet mit TDataSetProvider verbinden

  Alt 3. Feb 2008, 11:15
Datenbank: MySQL • Version: 5 • Zugriff über: dbexpress
Hi,
ich versuche gerade eine Verbindung mit meinem MySQL-Server aufzubauen. Scheitere aber daran, ein TClientDataSet mit einem TDataSetProvider zu verbinden.


Delphi-Quellcode:
//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;
Wenn ich versuche das auszuführen, bekomme ich immer folgende Fehlermeldung:
[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
  Mit Zitat antworten Zitat
mashutu

Registriert seit: 15. Nov 2007
195 Beiträge
 
#2

Re: TClientDataSet mit TDataSetProvider verbinden

  Alt 3. Feb 2008, 12:00
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.
utu

if it was hard to write it should be hard to read
  Mit Zitat antworten Zitat
flobbie

Registriert seit: 24. Jan 2008
7 Beiträge
 
#3

Re: TClientDataSet mit TDataSetProvider verbinden

  Alt 3. Feb 2008, 12:16
Hi,
danke für deine Antwort.

Delphi-Quellcode:
//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;
Ich habe so angefangen.

Delphi-Quellcode:
//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;
So bekomme ich keine Fehlermeldung mehr. Aber er zeigt nichts an.

Ich habe dann nochmal ein TDBText im Formular erstellt und versucht es mit
DBText1.DataSource := datasource; mit Inhalt zu füllen, aber es bleibt auch leer. Warum funktioniert das denn schon wieder nicht.

Warum kann das nicht einfach mal funktionieren?
Ich danke euch für eure Hilfe.
Mit freundlichen Grüßen
Flobbie
  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 07:51 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