Firebird + SQLdb

Вопросы программирования и использования среды Lazarus.

Модератор: Модераторы

Firebird + SQLdb

Сообщение devICE » 20.02.2010 20:41:01

Возможно подобная тема уже поднималась, но я с наскоку не нашел. Поэтому прошу прощения заранее.
Скажу сразу что DBGrid я не использую, а использую стандартные компоненты типа ListBox или ListView. На лазарус сел буквально числа 10го, поэтому ещё многое не могу понять. Собственно проблема в следующем пишу следующий код:
Код: Выделить всё
procedure TfmMain.miConnectClick(Sender: TObject);
begin
  ibcon.DatabaseName:=ExtractFilePath(Application.ExeName)+'base\CONTRACTS.FDB';
  ibcon.UserName:='SYSDBA';
  ibcon.Password:='masterkey';
  ibcon.HostName:='localhost';
  ibcon.CharSet:='UNICODE_FSS';
  ibcon.Open;
  sqltrans.StartTransaction;
  if ibcon.Connected then sbMain.SimpleText:='Connected to '+ibcon.HostName;
  ibsql.SQL.Text:='select "Name" from "ShowClientGroups"';
  ibsql.ExecSQL;
  ShowMessage(IntToStr(ibsql.FieldCount));
  while not ibsql.EOF do
  begin
       ShowMessage('1');
       lbGroups.Items.Add(ibsql.FieldByName('Name').Text);
       ShowMessage('2');
  end;
  ibsql.Close;
  sqltrans.Commit;
end;

ibcon: TIBConnection
sqltrans: TSQLTransaction
ibsql: TSQLQuery

Запрос указанный в SQL.Text прекрасно работает в FlameRobin и выдает данные. В лазаре почему-то запрос не выдает ничего. В чем может быть проблема? Понимаю то, что где-то мой косяк в коде... Но вот найти пока не могу...
Аватара пользователя
devICE
новенький
 
Сообщения: 14
Зарегистрирован: 20.02.2010 20:24:05

Re: Firebird + SQLdb

Сообщение z.g » 20.02.2010 21:18:56

devICE писал(а):ibsql.SQL.Text:='select "Name" from "ShowClientGroups"';
имена объектов в firebird, заданные в кавычках, чувствительны к регистру.
z.g
новенький
 
Сообщения: 17
Зарегистрирован: 15.02.2010 01:02:45

Re: Firebird + SQLdb

Сообщение dunin » 20.02.2010 23:38:51

devICE писал(а):...
ibsql.SQL.Text:='select "Name" from "ShowClientGroups"';
ibsql.ExecSQL;
...

1. Я может чего-то недопонимаю... А зачем вообще кавычки? Почему просто вот так ibsql.SQL.Text:='select Name from ShowClientGroups'; не написать?
2. если 'select...', то не ExecSQL, а Open;
Аватара пользователя
dunin
энтузиаст
 
Сообщения: 634
Зарегистрирован: 02.05.2007 13:18:11
Откуда: Тољя††и

Re: Firebird + SQLdb

Сообщение devICE » 21.02.2010 13:37:40

dunin писал(а):
devICE писал(а):...
ibsql.SQL.Text:='select "Name" from "ShowClientGroups"';
ibsql.ExecSQL;
...

1. Я может чего-то недопонимаю... А зачем вообще кавычки? Почему просто вот так ibsql.SQL.Text:='select Name from ShowClientGroups'; не написать?
2. если 'select...', то не ExecSQL, а Open;

1. Регистрозависимые название полей, поэтому в кавычках
2. Спасибо - заработало.
Аватара пользователя
devICE
новенький
 
Сообщения: 14
Зарегистрирован: 20.02.2010 20:24:05


Вернуться в Lazarus

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 21

Рейтинг@Mail.ru