Witam
Mam wielką prośbę. Po wielu próbach udało mi się zaobserwować bardzo dziwne zjawisko związane z ADO. Otóż rzecz sprowadziłem do podstaw:
Nowy projekt, na formatkę kładziemy ADOConnection i ADOStoredProc. Potrzebny będzie zainstalowany Firebird (1.5 lub 2.0 na obu jest to samo) oraz sterownik ODBC od IBPhoenix (2.0.0.144). Tworzymy nową bazę, zresztą może być jakaś istniejąca i dodajemy jedną stored prockę:
SET TERM ^ ;
CREATE PROCEDURE TEST
RETURNS (
ASTR Varchar(250) )
AS
BEGIN
astr = '';
END^
SET TERM ; ^
Tworzymy sobie źródełko danych wskazujące na ta bazkę. I teraz w delphiku, w ADOConnection wybieramy providera dla ODBC i wybieramy utworzone źródło danych (dla pewności klikamy testconnection). W Storedprocce, ustawiamy Connection, oraz ProcedureName = 'TEST'. W edytorze parametrów, dodajemy jeden parametr
Name ASTR, Type ftString, Direction pdOutput, Size 250. I tyle.
I teraz chwila prawdy. Nie kompilując projektu ustawiamy w procce Active = True. Powinno pójść, więc dajemy z powrotem na False, i znowu na True .... i co ? bo u mnie jest 'Nieokreślony błąd' : ((((
Pojęcia bladego nie mam dlaczego. Debugowałem trochę ADODB.pas, różnica między pierwszym i kolejnym ustawieniem Active na True jest taka że w pewnym momencie właściwość State ma zamiast adOpened adExecuting ... ale czym to jest spowodowane nie wiem. Nie ma problemu jak zamiast pustego String'a z procki zwracamy cokolwiek innego (np spację).
Z góry wielkie dzięki jeśli się komuś będzie chciało wykonać to pare kliknięć. A po dwakroć dzięki temu, kto zna przyczynę nieokreślonego błędu.
Pozdrawiam