Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Delphi: Базы данных и репортинг > Разобраться с ошибкой


Автор: Алкоголик 9.4.2008, 11:52
При выполнении данного кода: 

Код

function Tform1.OperatorUrl(OpId: string; Status:byte): string;
begin
  SQLSelect.SQL.Clear;
  SQLSelect.SQL.Add('SELECT [ReqestURL],[PaymentURL],[CheckURL]');
  SQLSelect.SQL.Add('FROM [Test_Terminals].[dbo].[CyberplatOperators]where [OperatorID]='#39+OpId+#39);
  LogFileAdd(logfile,SQLSelect.SQL.Text) ;
  SQLSelect.ExecSQL(true);
  if SQLSelect.IsEmpty then result:='Not found';

  case status of
    0:     result:=SQLSelect.Fields.Fields[0].AsString;
    2..6: result:=SQLSelect.Fields.Fields[1].AsString;
    7:     result:=SQLSelect.Fields.Fields[2].AsString;
  end;
end;
Возникает ошибка при status=0(list index out of bounds(0)), не имею представления как от нее избавиться статус равный нулю должен быть... 
Подскажите что-нибудь...
Заранее спасибо.

Автор: pseud 9.4.2008, 12:11
видимо вот твой промах:
Код

  if SQLSelect.IsEmpty then 
  begin
    result:='Not found';
    Exit;
  end;


Добавлено через 1 минуту и 20 секунд
ну или так

Код

  if SQLSelect.IsEmpty then 
    result:='Not found'
  else
    case status of
      0:     result:=SQLSelect.Fields.Fields[0].AsString;
      2..6: result:=SQLSelect.Fields.Fields[1].AsString;
      7:     result:=SQLSelect.Fields.Fields[2].AsString;
    end;


Автор: Алкоголик 9.4.2008, 12:58
Спасибо. Исправил, он теперь проходит мимо case. как будто ответ на запрос пуст. Хотя в самой базе делаю такой запрос...результат есть

Автор: Алкоголик 9.4.2008, 13:18
Еще раз спасибо. Дело как оказалось не в коде. Пропало куда то соединение с базой smile  что раньше было написано  в exe работает...а та же программа запускаешь исходник выдает ошибку..неможет соединиться с базой...

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)