nusya24 Опубликовано 26 марта, 2007 Жалоба Поделиться Опубликовано 26 марта, 2007 проблема вот в чем: есть сформированный заранее файл reestr2006.dbf он практически аналогичен файлу reestr.dbf, кроме того что в нем добавлены некоторые поля. также в файле reestr2006.dbf есть такие поля как sum_2, an_mes, которые незаполнены зато они заполнены в файле reestr.dbf. Так вот задача в том чтобы заполнить эти поля в reestr2006.dbf используя patientcod и xkey для поиска соответствующей записи. Query1.SQL.Append('select * from "Reestr.dbf"'); Query1.Open; Query2.RequestLive:=true; Query2.SQL.Clear; Query2.SQL.Append('select * from "Reestr2006.DBF" '+ 'where (mes=8) '+ 'and (n_pol=2) '+ 'and (bukvi='+chr(39)+'PZ'+chr(39)+')'); Query2.Open; repeat if Query2.Locate('PATIENTCOD;XKEY',VarArrayOf([Query1.FieldByName('PATIENTCOD').AsInteger,Query1.FieldByName('XKEY').AsInteger]),[loCaseInsensitive]) then begin Query2.Edit; Query2.FieldByName('SUM_2').AsCurrency:=Query1.FieldByName('SUM_2').AsCurrency; Query2.FieldByName('AN_MES').AsInteger:=Query1.FieldByName('AN_MES').AsInteger; Query2.Post; end;Query1.Next; until Query1.Eof; Query1.Close; Query2.Close; а теперь обратите внимание на такую запись в reest2006 xkey=60099 patientcod=36879 она почему-то не изменилась далее за ней, через одну, идут еще несколько подобных записей. удивительно, но я уже голову сломал единственное что я пока не пробовал это использовать вместо Locate что-нибудь другое (но если чесно не хотелось бы от нее отказываться) 8.rar 8.rar Ссылка на комментарий Поделиться на другие сайты Поделиться
yuriks Опубликовано 27 марта, 2007 Жалоба Поделиться Опубликовано 27 марта, 2007 Если ты хочеш чтобы тебе помогли, надо не только базы предоставить, а и маленький примерчик готовой рабочей программы ! (а не кусок). И базы порежь, что-бы быстрее исполнялось. После етого сам проверь есть ли ошибка ! Ссылка на комментарий Поделиться на другие сайты Поделиться
nusya24 Опубликовано 27 марта, 2007 Автор Жалоба Поделиться Опубликовано 27 марта, 2007 (изменено) я не думаю что люди занимающиеся кодингом настолько ленивые чтобы бросить на форму бутон и два кьюэри и скопировать мой код в онклик а насчет порезать базы - я немного не понял как именно: - часть полей перенести в другой файл - сделать несколько однотипных файлов с маркировкой 1,2,3... - или открывать часть данных из тех что находится в бд если последнее, дак я и так прислал тока часть данных в реале файл reestr2006 весит около 80-90Мб а при открытии мне нужны именно эти данные, кот я прислал и вообще не флудите пожалуйста попрошу тока по теме, а то некоторые начинают всякую ерунду советовать не зная что ответить на поставленную проблему Изменено 27 марта, 2007 пользователем nusya24 Ссылка на комментарий Поделиться на другие сайты Поделиться
yuriks Опубликовано 28 марта, 2007 Жалоба Поделиться Опубликовано 28 марта, 2007 (изменено) я не думаю что люди занимающиеся кодингом настолько ленивые чтобы бросить на форму бутон и два кьюэри и скопировать мой код в онклик Ты просто посмотри на количество скачиваний твоих файлов и сделай выводы. Надо иметь уважение к людям и к их времени. Так что то что ты написал ("бросить на форму бутон и два кьюэри и скопировать мой код в онклик") советую сделать самому. а насчет порезать базы - я немного не понял как именно: Базы имеют больше 5 тысяч записей, а ты описываеш на примере одной записи. Я исполнял твой код и он у меня исполнялся ДОЛГО (очень долго). Поетому и говорю : сократи количество записей в базе. Для примера. и вообще не флудите пожалуйста попрошу тока по теме, а то некоторые начинают всякую ерунду советовать не зная что ответить на поставленную проблему ИМХО все советы были по сути. После запуска проги, твоей ошибки не увидел. Все записи заполнились. Я даже 2-й раз очистил все значения етих 2-х полей в reest2006 - результат аналогичный, все пашет, пустых нету. Изменено 28 марта, 2007 пользователем yuriks Ссылка на комментарий Поделиться на другие сайты Поделиться
nusya24 Опубликовано 28 марта, 2007 Автор Жалоба Поделиться Опубликовано 28 марта, 2007 Ты просто посмотри на количество скачиваний твоих файлов и сделай выводы. а причем сдесь кол-во скачиваний, не вижу в этом никакой логики еслиб я небыл заинтересован отвечать или не знал ответа тоже не сталбы скачивать Я исполнял твой код и он у меня исполнялся ДОЛГО (очень долго). Поетому и говорю : сократи количество записей в базе. Для примера. очень долго - это как если знаеш как сделать это быстрее то буду признателен за подсказку тока не надо говорить: "уменьши кол-во записей" мне нужны все записи и уменьшать их нет необходимости к томуже если обрабатывать скажем по 500 записей, потом открывать другие 500, то все записи обработаются а вот если усе сразу то читай выше ИМХО все советы были по сути. ню-ню ты случайно не критиком работаеш? После запуска проги, твоей ошибки не увидел. Все записи заполнились. Я даже 2-й раз очистил все значения етих 2-х полей в reest2006 - результат аналогичный, все пашет, пустых нету. пробовал на двух разных машинах - результат тотже (в смысле не пашет нормально) также пробовал bde из delphi 2006 - таже фигня (хотя в 2006 делфи bde вроде не меняли кординально) Ссылка на комментарий Поделиться на другие сайты Поделиться
nusya24 Опубликовано 29 марта, 2007 Автор Жалоба Поделиться Опубликовано 29 марта, 2007 парни прикол вот в чем дома у меня все нормально проходит а вот на работе идут пропуски записей хотя и там и там одна и таже делфя дома 800 пенек на работе пробовал на 2 компах: один пенек 3,2, другой селерон ~2 Ггц в чем прикол так и не могу понять будем разбираться Ссылка на комментарий Поделиться на другие сайты Поделиться
Рекомендуемые сообщения
Для публикации сообщений создайте учётную запись или авторизуйтесь
Вы должны быть пользователем, чтобы оставить комментарий
Создать учетную запись
Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!
Регистрация нового пользователяВойти
Уже есть аккаунт? Войти в систему.
Войти