Hi all,
I'm not an experienced coder and new with Lazarus.
I set up two parallel sqlqueries on a form (separate sqltransaction, sqlquery, dataset and even dbconnection), i have two dbgrids to show the data.
The connections are created basically according to the Sqldb tutorial. All components have the same properties set, i checked them many times.
My problem is: the second dataset (roles) has two records, but no fields. Does anyone has any idea why is that? I spent days with debugging without success.
procedure TUsersForm.RefreshUsers;
begin
SQLTransactionGetUsers.Commit;
SQLQueryGetUsers.Close;
SQLQueryGetUsers.SQL.Text := 'select kezelo_id, login, nev, jelszo, jog_id, jog, ervenyes from SP_GET_USERS(' + IntToStr(MainForm.current_user_kezelo_id) + ');';
SQLQueryGetUsers.Open;
end;
procedure TUsersForm.RefreshRoles;
begin
SQLTransactionGetRoles.Commit;
SQLQueryGetRoles.Close;
SQLQueryGetRoles.SQL.Text := 'select jog_id, leiras from SP_GET_ROLES;';
SQLQueryGetRoles.Open;
DatasourceGetRoles.DataSet.Active:=true;
ShowMessage('Datasource GetRoles field count: ' + IntToStr(DatasourceGetRoles.DataSet.FieldCount)); //output: 0
ShowMessage('Datasource GetRoles record count: ' + IntToStr(DatasourceGetRoles.DataSet.RecordCount)); //output: 2
end;
The Firebird stored procedure (gives correct output in FlameRobin):
alter procedure sp_get_roles returns (jog_id smallint, leiras varchar(50)) as
begin
for select jog_id, leiras
from t_szerepkorok
into :jog_id, :leiras
do
suspend;
end ^
Platform: Win7
Lazarus version: 1.0.13, FPC version 2.6.2
Firebird 2.5.2 embedded