Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Insert into... Помогите разобраться с запросом 
:(
    Опции темы
kulikoff
Дата 24.12.2005, 21:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: 1
Всего: 1



У меня есть два файла 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;


Не хочет работать smile . Пишет, что "Type mismatch in expression". Как такое возможно, учитывая, что первый запрос работает на отлично? Что во втором неправильно?
PM MAIL WWW ICQ Skype   Вверх
FRAGNATIC
Дата 24.12.2005, 22:15 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


..::Свирепый Кодер::..
**


Профиль
Группа: Участник
Сообщений: 901
Регистрация: 17.10.2004
Где: ICQ

Репутация: 2
Всего: 11



а зачем на столько замедлять приложение ради прогресбара?
новерное лучше будет сделать прогресбар на подобии того что идёт при загрузке винды тоесть пару чёрточек по гругу бегают до тех пор пока не выполнится твой запрос да и всё =)
PM MAIL   Вверх
kulikoff
Дата 24.12.2005, 22:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 5.11.2005
Где: Киев

Репутация: 1
Всего: 1



Да просто мне надо ещё, чтоб писало что-то наподобие такого: "Обработано 12 строк из 200", ну и менялось кол-во строк... А быстродействие особой роли не играет... Хотя, а как можно сделать бегунок наподобие винды? гиф-анимацию просто вставить или как?
PM MAIL WWW ICQ Skype   Вверх
offline
Дата 25.12.2005, 11:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 474
Регистрация: 7.2.2005

Репутация: 7
Всего: 7



Код

  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Text:='select ZKPO, S from "D:\MyDatabase\BANK2410.dbf"';
  Query1.Prepare;
  Query1.Open;
  Query1.First;
  ProgressBar1.Position := 0;
  ProgressBar1.Max := Query1.RecordCount;
  Query2.Close;
  Query2.SQL.Clear;
  Query2.SQL.Text:='insert into "D:\MyDatabase\proba2.db" (ZKPO, SUMMA) values (:param1, :param2)';
  while not Query1.EOF do begin
   Application.ProcessMessages;
   ProgressBar1.Position := Query1.RecNo;
   Label1.Caption := IntToStr(Query1.RecNo) + ' из ' +IntToStr(Query1.RecordCount);
   if Query2.Open then Query2.Close;
   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;
  Query1.close;
  ProgressBar1.Position := 0;
  Label1.Caption := '';


что-то типа этого

Это сообщение отредактировал(а) kirilllius - 25.12.2005, 11:30
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Базы данных и репортинг"
Vit
Петрович

Запрещено:

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами


Обязательно указание:

1. Базы данных (Paradox, Oracle и т.п.)

2. Способа доступа (ADO, BDE и т.д.)


  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи
  • Вопросы по SQL и вопросы по базам данных не связанные с Дельфи задавать здесь

FAQ раздела лежит здесь!


Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Vit, Петрович.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Базы данных и репортинг | Следующая тема »


 




[ Время генерации скрипта: 0.0499 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.