![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Возникает такая ошибка
Код:
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. |