Einzelnen Beitrag anzeigen

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