AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi DBExpress + ClientDataSet mit DataSetProvider und Blackfish
Thema durchsuchen
Ansicht
Themen-Optionen

DBExpress + ClientDataSet mit DataSetProvider und Blackfish

Ein Thema von GHorn · begonnen am 8. Jun 2009
Antwort Antwort
GHorn

Registriert seit: 24. Mär 2009
Ort: NRW
124 Beiträge
 
#1

DBExpress + ClientDataSet mit DataSetProvider und Blackfish

  Alt 8. Jun 2009, 09:18
Datenbank: BlackFish • Version: D2009 • Zugriff über: SQL
Hallo,

ich habe ein Projekt von D2007 nach D2009 portiert. Beide Programme
benutzen BlackFishSQL in der aktuellsten Version (DataBasePack #4).
Nach den üblichen Umstellungen (UniCode usw) taucht folgendes Problem
in D2009 auf, dass ich in D2007 nicht habe:

Ich versuche eine größere Tabelle per SELECT zu lesen. Die jeweiligen
Feldgrößen variieren von VARCHAR(8) bis VARCHAR(600). Lese ich Felder,
die in der Summe 4730 Zeichen lang sind, gibts keine Probleme. Bei
4733 Zeichen allerdings kommt die Exception beim Zuweisen des Providers
zum ClientDataset.

Delphi-Quellcode:
var
  MySQLDataSet1: TSQLDataSet;
  MyDataSource1: TDataSource;
  MyDSProvider1: TDataSetProvider;
  MyClientDS1: TClientDataSet;

...
...
...

procedure TTableView.ExecuteSelectSQL;
// Ein SQL-Select-Statement ausführen:
begin
  MyClientDS1.Active := False;
  MySQLDataSet1.Active := False;
  MySQLDataset1.CommandType := ctQuery;
  MySQLDataSet1.DbxCommandType := 'Dbx.SQL';
  MySQLDataSet1.CommandText := Trim(Memo1.Text); // z.B.: 'select * from job_details'
  MyDSProvider1.DataSet := MySQLDataSet1;
  MyClientDS1.ProviderName := MyDSProvider1.Name;
  try
    // ************
    MyClientDS1.Data := MyDSProvider1.Data; // <--- hier knallt's
    // ************
    MyDataSource1.DataSet := MyClientDS1;
    MySQLDataset1.DataSource := MyDataSource1;
    DBGrid1.DataSource := MyDatasource1;
    MyClientDS1.Active := True;
    MySQLDataSet1.Active := True;
  except
    on E: exception do
      begin
        // Fehlermeldung anzeigen:
        ED_StatusBar1.Color := clRed;
        ED_StatusBar1.Font.Color := clWhite;
        ED_StatusBar1.Text := 'Error executing SQL statement: '+E.Message;
        Application.ProcessMessages;
      end;
  end;
end;

Der selbe Fehler kommt, wenn ich die Tabelle in der IDE lese ( Komponenten
Active = True usw) und wenn ich im Daten-Explorer durch Doppelklick versuche,
die Tabelle einzulesen. Gehe ich an dieser Stelle auf 'Tabelle ändern', werden
keine Felder angezeigt.

Offensichtlich gibt's ein Längen- bzw Anzahl-Zeichen-Problem. Ist euch
dazu etwas bekannt oder habt ihr Tips? Wie gesagt: gleiche Tabelle, gleicher
BF-Dienst, gleicher Quellcode. Nur D2007 bzw. D2009.

Ich habe noch einen ScreenShot mit der Fehlermeldung des Data Explorers angehängt.


Danke für jeden Tip!!!

Gruß,
Gerald
Angehängte Grafiken
Dateityp: bmp err_mess_dataexplorer_569.bmp (515,1 KB, 6x aufgerufen)
  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 04:05 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