-
Здравствуйте. Очень надеюсь на вашу помощь!!!!! Есть БД FoxPro и excel файл. // Беру строчку из foxpro и ищу соответствующую ей строку в excel
FoxProQuery.Active:=false; FoxproQuery.SQl.text:='select Name1,Name2 from "D:\1.dbf"'; FoxProQuery.Active:=true; while not (FoxProQuery.eof) do begin ExcelQuery.Active:=false; Excel.Query.SQL.TEXT:='select поле1,поле2,поле3 from [Лист1$] where поле1='''+ VarToStr(FoxProQuery.FieldValue['Name1'])+''''; ExcelQuery.Active:=true; // здесь если в ExcelQuery что-то есть, то вызываю процедуру end;
Все работает исправно, но о-о-чень долго. Появилась идея создать временную таблицу, выгрузить внеё одним махом excel файл и в цикле while работать уже с ней, а после цикла удалять её. А вся проблема заключается в том,ч тоя не знаю как создавать локальную временную таблицу. Буду очень признателен, если вы мне поможете.
-
> но о-о-чень долго
а где FoxProQuery.Next ?
-
Забыл в коде написать, извиняюсь. В коде все нормально, можете его не проверять, сам не знаю для чего влепил. Мой основной вопрос:
Появилась идея создать временную таблицу, выгрузить внеё одним махом excel файл и в цикле while работать уже с ней, а после цикла удалять её. А вся проблема заключается в том,ч тоя не знаю как создавать локальную временную таблицу. Буду очень признателен, если вы мне поможете.
-
Удалено модератором
-
проще все загрузить в ExcelQuery... а потом уже вместо подвыборок делать простой Locate по "Поле1"... я сам так делал один отчет..думал, быстрее. фиг там.. уходили часы(БД удаленная, канал 19200).. потом плюнул смачно, втянул все на клиента и уже по НД мотался... время сократилось до 14-15 минут
|