Перейти к содержанию
СофтФорум - всё о компьютерах и не только

и снова мудрит BDE


Рекомендуемые сообщения

проблема вот в чем:

есть сформированный заранее файл 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

она почему-то не изменилась

далее за ней, через одну, идут еще несколько подобных записей.

удивительно, но я уже голову сломал :blushing:

единственное что я пока не пробовал это использовать вместо Locate что-нибудь другое (но если чесно не хотелось бы от нее отказываться)

8.rar

8.rar

Ссылка на комментарий
Поделиться на другие сайты

Если ты хочеш чтобы тебе помогли, надо не только базы предоставить,

а и маленький примерчик готовой рабочей программы ! (а не кусок).

И базы порежь, что-бы быстрее исполнялось.

После етого сам проверь есть ли ошибка !

Ссылка на комментарий
Поделиться на другие сайты

я не думаю что люди занимающиеся кодингом настолько ленивые чтобы бросить на форму бутон и два кьюэри

и скопировать мой код в онклик

а насчет порезать базы - я немного не понял

как именно:

- часть полей перенести в другой файл

- сделать несколько однотипных файлов с маркировкой 1,2,3...

- или открывать часть данных из тех что находится в бд

если последнее, дак я и так прислал тока часть данных

в реале файл reestr2006 весит около 80-90Мб

а при открытии мне нужны именно эти данные, кот я прислал

и вообще не флудите пожалуйста

попрошу тока по теме, а то некоторые начинают всякую ерунду советовать не зная что ответить на поставленную проблему

Изменено пользователем nusya24
Ссылка на комментарий
Поделиться на другие сайты

я не думаю что люди занимающиеся кодингом настолько ленивые чтобы бросить на форму бутон и два кьюэри

и скопировать мой код в онклик

Ты просто посмотри на количество скачиваний твоих файлов и сделай выводы.

Надо иметь уважение к людям и к их времени.

Так что то что ты написал ("бросить на форму бутон и два кьюэри

и скопировать мой код в онклик") советую сделать самому.

а насчет порезать базы - я немного не понял

как именно:

Базы имеют больше 5 тысяч записей, а ты описываеш на примере одной записи.

Я исполнял твой код и он у меня исполнялся ДОЛГО (очень долго).

Поетому и говорю : сократи количество записей в базе. Для примера.

и вообще не флудите пожалуйста

попрошу тока по теме, а то некоторые начинают всякую ерунду советовать не зная что ответить на поставленную проблему

ИМХО все советы были по сути.

После запуска проги, твоей ошибки не увидел. Все записи заполнились.

Я даже 2-й раз очистил все значения етих 2-х полей в reest2006 - результат аналогичный, все пашет, пустых нету.

Изменено пользователем yuriks
Ссылка на комментарий
Поделиться на другие сайты

Ты просто посмотри на количество скачиваний твоих файлов и сделай выводы.

а причем сдесь кол-во скачиваний, не вижу в этом никакой логики

еслиб я небыл заинтересован отвечать или не знал ответа тоже не сталбы скачивать

Я исполнял твой код и он у меня исполнялся ДОЛГО (очень долго).

Поетому и говорю : сократи количество записей в базе. Для примера.

очень долго - это как

если знаеш как сделать это быстрее то буду признателен за подсказку

тока не надо говорить: "уменьши кол-во записей"

мне нужны все записи и уменьшать их нет необходимости

к томуже если обрабатывать скажем по 500 записей, потом открывать другие 500, то все записи обработаются

а вот если усе сразу то читай выше

ИМХО все советы были по сути.

ню-ню

ты случайно не критиком работаеш?

После запуска проги, твоей ошибки не увидел. Все записи заполнились.

Я даже 2-й раз очистил все значения етих 2-х полей в reest2006 - результат аналогичный, все пашет, пустых нету.

пробовал на двух разных машинах - результат тотже (в смысле не пашет нормально)

также пробовал bde из delphi 2006 - таже фигня

(хотя в 2006 делфи bde вроде не меняли кординально)

Ссылка на комментарий
Поделиться на другие сайты

парни прикол вот в чем

дома у меня все нормально проходит

а вот на работе идут пропуски записей хотя и там и там одна и таже делфя

дома 800 пенек

на работе пробовал на 2 компах: один пенек 3,2, другой селерон ~2 Ггц

в чем прикол так и не могу понять

будем разбираться

Ссылка на комментарий
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...