Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Базы данных
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 21.12.2010, 01:03
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию Ошибка: databese not assigned

Возникает такая ошибка

Код:
procedure TForm1.Button1Click(Sender: TObject);
Var
I:integer;
begin
Table1.TableName:='cwchecks.dbf';
Table1.Active:= true;
Table1.Open;

IBQuery1.Create(nil);

IBQuery1.SQL.Add('INSERT INTO checks ');
IBQuery1.SQL.Add('(cCheck, cPosincheck, cGood, cKP, cQuantity, cKO, cKodser, cDate)' );
IBQuery1.SQL.Add('VALUES (:cCheck, :cPosincheck, :cGood, :cKP, :cQuantity, :cKO, :cKodser, :cDate)');

IBDatabase1.Open;
IBTransaction1.StartTransaction;

Table1.First;
Table1.FetchAll;


For i:=0 to Table1.RecordCount do
Begin

IBQuery1.ParamByName('cCheck').AsInteger:= Table1.Fields.FieldByName('CHECK').AsInteger;
IBQuery1.ParamByName('cPosincheck').AsInteger:= Table1.Fields.FieldByName('POSINCHECK').AsInteger;
IBQuery1.ParamByName('cGood').AsString:= Table1.Fields.FieldByName('GOOD').AsString;
IBQuery1.ParamByName('cKP').AsString:= Table1.Fields.FieldByName('KP').AsString;
IBQuery1.ParamByName('cQuantity').AsInteger:= Table1.Fields.FieldByName('QUANTITY').AsInteger;
IBQuery1.ParamByName('cKO').AsInteger:= Table1.Fields.FieldByName('KO').AsInteger;
IBQuery1.ParamByName('cKodser').AsInteger:= Table1.Fields.FieldByName('KODSER').AsInteger;
IBQuery1.ParamByName('cDate').AsDateTime:= Table1.Fields.FieldByName('DATE').AsDateTime;

IBQuery1.Open; dвот здесь выскакивает ошибка
Table1.Next;
IBTransaction1.CommitRetaining;
End;

Table1.Close;
Table1.Active:= false;

IBTransaction1.CommitRetaining;

IBTransaction1.Active:=False;
end;

lmikle: пользуемся тегами!!!

Путь к базе данных указал верно...
Может проблема какая при работе firebird с Windows 7?
Последний раз редактировалось sergenaro; Вчера в 02:51.
Ответить с цитированием
  #2  
Старый 21.12.2010, 01:28
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

проверяем св-во database у компонента IBQuery1.
Должно указывать на соотв. компонент.
Ответить с цитированием
  #3  
Старый 21.12.2010, 01:51
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Все просто, вы создаете IBQuery1 и никак его не связываете с IBDatabase1.
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.
Ответить с цитированием
  #4  
Старый 21.12.2010, 02:02
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Нет, связываю...И еще, когда пытаешься установить свойство IBDatabese1.Connected=true
выводится ошибка: unvailable database
Ответить с цитированием
  #5  
Старый 21.12.2010, 02:05
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Значит неправильно введен путь к базе.
или клиент не найден (клиент БД).
Ответить с цитированием
  #6  
Старый 21.12.2010, 02:37
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

А что делать, если клиент не найден?
Ответить с цитированием
  #7  
Старый 21.12.2010, 05:19
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,004
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

Ставить.
При установке проверить, что создается клиентская библиотека в Windows\System32.

Да, еще такое может быть, если сервер просто не запущен. Посмотри соотв. сервис.
Ответить с цитированием
  #8  
Старый 21.12.2010, 09:07
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

В папке system файл gds32.dll
Служба firebird запущена
Все равно ни фига...
Ответить с цитированием
  #9  
Старый 21.12.2010, 12:39
Аватар для Страдалецъ
Страдалецъ Страдалецъ вне форума
Гуру
 
Регистрация: 09.03.2009
Адрес: На курорте, из окна вижу теплое Баренцево море. Бррр.
Сообщения: 4,721
Репутация: 52347
По умолчанию

Цитата:
Сообщение от sergenaro
Нет, связываю...И еще, когда пытаешься установить свойство IBDatabese1.Connected=true
выводится ошибка: unvailable database
Связываете? Тогда покажите мне в вашем коде в каком месте эта связка происходит:
Код:
IBQuery1.Create(nil);

IBQuery1.SQL.Add('INSERT INTO checks ');
IBQuery1.SQL.Add('(cCheck, cPosincheck, cGood, cKP, cQuantity, cKO, cKodser, cDate)' );
IBQuery1.SQL.Add('VALUES (:cCheck, :cPosincheck, :cGood, :cKP, :cQuantity, :cKO, :cKodser, :cDate)');

IBDatabase1.Open;
IBTransaction1.StartTransaction;

Table1.First;
Table1.FetchAll;


For i:=0 to Table1.RecordCount do
Begin

IBQuery1.ParamByName('cCheck').AsInteger:= Table1.Fields.FieldByName('CHECK').AsInteger;
IBQuery1.ParamByName('cPosincheck').AsInteger:= Table1.Fields.FieldByName('POSINCHECK').AsInteger;
IBQuery1.ParamByName('cGood').AsString:= Table1.Fields.FieldByName('GOOD').AsString;
IBQuery1.ParamByName('cKP').AsString:= Table1.Fields.FieldByName('KP').AsString;
IBQuery1.ParamByName('cQuantity').AsInteger:= Table1.Fields.FieldByName('QUANTITY').AsInteger;
IBQuery1.ParamByName('cKO').AsInteger:= Table1.Fields.FieldByName('KO').AsInteger;
IBQuery1.ParamByName('cKodser').AsInteger:= Table1.Fields.FieldByName('KODSER').AsInteger;
IBQuery1.ParamByName('cDate').AsDateTime:= Table1.Fields.FieldByName('DATE').AsDateTime;

IBQuery1.Open; dвот здесь выскакивает ошибка
Вот откуда IBQuery1 узнает о базе к которой делать запрос, если у вас свойство IBQuery1.Database не заполняется?
__________________
Жизнь такова какова она есть и больше никакова.
Помогаю за спасибо.

Последний раз редактировалось Страдалецъ, 21.12.2010 в 12:43.
Ответить с цитированием
  #10  
Старый 21.12.2010, 15:28
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Указываю напрямую в дизайнере...
Ответить с цитированием
  #11  
Старый 21.12.2010, 15:40
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

Цитата:
Указываю напрямую в дизайнере...
А зачем вы программно создаете IBQuery1 (Ведь судя по объяснению, вы его на форму кинули)
за место
Цитата:
IBQuery1.Create(nil);
Используйте.
Код:
IBQuery1.active:=false;
IBQuery1.sql.clear;
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #12  
Старый 21.12.2010, 18:15
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Исправил...
Теперь выдается ошибка "No table name assigned"
Ответить с цитированием
  #13  
Старый 21.12.2010, 18:24
Black Raider Black Raider вне форума
Местный
 
Регистрация: 31.05.2010
Адрес: Москва
Сообщения: 466
Версия Delphi: 7
Репутация: 40
По умолчанию

За место IBQuery1.Open
Используйте IBQUERY1.ExecSql; т.к. IBQuery у вас не возвращает набор данных.
__________________
Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение"
Ответить с цитированием
  #14  
Старый 21.12.2010, 22:42
sergenaro sergenaro вне форума
Прохожий
 
Регистрация: 21.12.2010
Сообщения: 7
Репутация: 10
По умолчанию

Исправил. Все равно та же херня...
Ответить с цитированием
  #15  
Старый 22.12.2010, 02:50
Asinkrit Asinkrit вне форума
Местный
 
Регистрация: 29.10.2009
Сообщения: 446
Репутация: 271
По умолчанию

Я не вижу, где вы указываете имя базы данных. Если в дизайнере тогда вопросов нет. Проверьте правильность указания имени БД.

Код:
  For i:=0 to Table1.RecordCount-1 do
А вообще лучше так:
Код:
  ..
  with Table1 do
    begin  
    First;
    While not Table1.eof do
       begin
       ...
       Next;
       end;
    end;
  ..

Последний раз редактировалось Asinkrit, 22.12.2010 в 02:55.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 14:06.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter