У меня есть два файла dbf & db. Хожу через BDE. Необходимо данные из одного файла перелить в другой. Пишу запрос вида:
| Код | Query1.Close; Query1.SQL.Clear; Query1.SQL.Text:='insert into "D:\MyDatabase\proba2.db" (ZKPO, SUMMA) select ZKPO, S from "D:\MyDatabase\BANK2410.dbf"'; Query1.Prepare; Query1.ExecSQL;
|
всё работает отлично. Но мне надо сделать построчную запись в таблицу (для того, чтоб прикрутить ПрогрессБар), переписываю запрос в два следующим образом:
| Код | var i: integer; begin Query1.Close; Query1.SQL.Clear; Query1.SQL.Text:='select ZKPO, S from "D:\MyDatabase\BANK2410.dbf"'; Query1.Prepare; Query1.Open; Query2.Close; for i:=0 to Query1.RecordCount-1 do begin Query2.SQL.Clear; Query2.SQL.Text:='insert into "D:\MyDatabase\proba2.db" (ZKPO, SUMMA) values (:param1, :param2)'; Query2.ParamByName('param1').AsInteger:=Query1.Fields[0].AsInteger; Query2.ParamByName('param2').AsInteger:=Query1.Fields[1].AsInteger; Query2.Prepare; Query2.ExecSQL; Query1.Next; end; Query2.close;
|
Не хочет работать . Пишет, что "Type mismatch in expression". Как такое возможно, учитывая, что первый запрос работает на отлично? Что во втором неправильно? |