D2005 dbExpress i MySQL

0

Używam D2005 i bazy danych MySQL 4.0.18.
w zamieszczonym listingu procedurki:

   If DM1.CDS_ust.Active=true then DM1.CDS_ust.Active:=false;
   DM1.SQL_Filtr_poprawka.Active:=false;
   DM1.SQL_Filtr_poprawka.CommandText:='';
   DM1.SQL_Filtr_poprawka.CommandText:='SELECT * FROM ust WHERE 

NrAsort=:param1';
DM1.SQL_Filtr_poprawka.ParamByName('param1').Value:=fil;
DM1.DataSetProvider1.DataSet:=DM1.Filtr_poprawka;
DM1.SQL_Filtr_poprawka.Active:=true;
DM1.CDS_ust.Active:=true;
DM1.SQL_SQL_ust.Active:=false;

DM1 - datamodule
fil - zmienna, której wartość jest określana w innej procedurze
CDS_ust - client dataset
SQL_Filtr_poprawka - SQLQuery z karty dbexpress

problem:
przy pierwszym wywołaniu procedury, rekordy zbuforowane za pomocą
zapytania "SQL_Filtr_poprawka" buforowane są w "CDS_ust" i wszystko OK.
Za drugim wywołaniem ww. procedurki (obserwując jej krokowe wywołanie w
degugerze) wydaje się że wyszystkie polecenia są wykonywane poprawnie
natomiast rekordy zapisane w buforze "CDS_ust" nie ulegają
uaktualnieniu, a powinny ponieważ wraz z drugim wywołaniem procedury
zmienia się parametr "fil".
Niestety nie wiem jak wyczyścić bufor "CDS_ust" przed kolejnym
wywołaniem procedury. Wydawało mi się iż odłączenie "CDS_ust" na czas
tworzenia zapytania i późniejsze jego odświeżenie powinno zaktualizować
bufor ClientDataSet.

Poza tym zaobserwowałem ciekawostkę: mianowicie gdy połączę
SQLConnection->SQLQuery->DataSetProvider->ClientDataSet i SQLConnection
jest włączony, SQLQuery jest aktywna i ClientDataSet jest aktywny (dane
widać w Gridzie) skompiluje program i w "object inspectorze" wyłączę
SQLConnection i SQLQuery to i tak po uruchomieniu programu widać dane w
gridzie. Widać je nawet po uruchomieniu programu z exe-ca!
W Delphi7 aby zobaczyć dane trzeba było zawsze uruchomić kwerendę aby
najpierw pobrała dane z serwera a w D2005 ClientDataSet korzysta z
kwerendy tylko raz???
Może są jakieś ustawienia ClientDataSet-a lub DataSetProvidera, które
powodują że bufor ClientDataSet-a będzie odświerzany poprzez wywołanie
kwerendy.

Jeśli ktoś miał podobne doznania to proszę o pomoc!
Pozdrawiam.

0

Jak udało Ci się dogadać z MySQL z D2005? Mam zainstalowany i uruchomiony server (przez php można wejść bez problemu, podobnie przez linię poleceń), wstawiam SQLConnection - nie ma problemu z połączeniem (test connection itd.), ale dalej zima. Cokolwiek: SQLDataSet/Query/Table i próbuje dać Active na True dostaję AV in module dbexpmysql.dll... Oczywiście libmySQL.dll jest w system32. Możesz mi coś podpowiedzieć?

Jacek

1 użytkowników online, w tym zalogowanych: 0, gości: 1