|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Ошибка: 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
|
|||
|
|||
проверяем св-во database у компонента IBQuery1.
Должно указывать на соотв. компонент. |
#3
|
||||
|
||||
Все просто, вы создаете IBQuery1 и никак его не связываете с IBDatabase1.
Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. |
#4
|
|||
|
|||
Нет, связываю...И еще, когда пытаешься установить свойство IBDatabese1.Connected=true
выводится ошибка: unvailable database |
#5
|
|||
|
|||
Значит неправильно введен путь к базе.
или клиент не найден (клиент БД). |
#6
|
|||
|
|||
А что делать, если клиент не найден?
|
#7
|
|||
|
|||
Ставить.
При установке проверить, что создается клиентская библиотека в Windows\System32. Да, еще такое может быть, если сервер просто не запущен. Посмотри соотв. сервис. |
#8
|
|||
|
|||
В папке system файл gds32.dll
Служба firebird запущена Все равно ни фига... |
#9
|
||||
|
||||
Цитата:
Код:
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вот здесь выскакивает ошибка Жизнь такова какова она есть и больше никакова. Помогаю за спасибо. Последний раз редактировалось Страдалецъ, 21.12.2010 в 12:43. |
#10
|
|||
|
|||
Указываю напрямую в дизайнере...
|
#11
|
|||
|
|||
Цитата:
за место Цитата:
Код:
IBQuery1.active:=false; IBQuery1.sql.clear; Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#12
|
|||
|
|||
Исправил...
Теперь выдается ошибка "No table name assigned" |
#13
|
|||
|
|||
За место IBQuery1.Open
Используйте IBQUERY1.ExecSql; т.к. IBQuery у вас не возвращает набор данных. Новый вирус - "БОМЖ"! Он просто роется в Корзине...и спит под ярлычком "Сетевое окружение" |
#14
|
|||
|
|||
Исправил. Все равно та же херня...
|
#15
|
|||
|
|||
Я не вижу, где вы указываете имя базы данных. Если в дизайнере тогда вопросов нет. Проверьте правильность указания имени БД.
Код:
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. |