Вставка рядка в таблицю формату dbf

Вставка рядка в таблицю формату DBF

Я сьогодні вже задавала це питання, але він кудись пропав з форума.Попитаюсь задати його ще раз.
Мені необхідно вставити рядок в таблицю формату DBF.Іменно вставити, а не записати в конец.В таблиці формату DBF у мене Insert працює як Append.Вставка за допомогою SQL-запиту (INSERT) дає такий же результат-запис заноситься в кінець набору даних.
У мене питання-чи можна за допомогою методів і властивостей компонентів Delphi6 вставити запис в таблицю формату DBF (що б не мучиться з усякими temp-овимі файлами і не писати код) або це в корені неможливо? Якщо все-таки можна це зробити, то як?
На формі у мене DBGrid і навігатор.Но після вставки користувачем записи вона виявляється в кінці набору. (Використовую компоненту Table.)

Навіщо тобі це потрібно, спробуй розповісти, напевно є інше нормальне рішення

Інше рішення я вже прідумала.Но хотілося б по-простіше.
Спробую розповісти суть проблеми.Тебе про що-небудь говорить форма 8ДР?
Там DBF-формат.В останніх 3-х записах в таблиці в поле TIN повинні бути значення 99991,99992,99993.В інших полях теж різна інформація.Но це не важно.Важно те, що після цих записів на вимогу заповнення файлу (файл здається в податкову) не повинно бути більше ніяких запісей.Самий простий шлях для мене як для програміста, щоб користувач сам робив вставку, тобто він вставив запис, яку забув занести, в потрібне місце.
Чому у мене користувач коригує саме готовий файл-довго пояснювати, та й навряд чи це буде комусь інтересно.Просто переді мною постала така ось проблема.
Звичайно можна прибрати останні 3 записи, заносити інформацію в кінець, а потім формувати заново файл з останніми 3-ма записами. (Що я і зроблю, якщо ніхто на форумі мені не підкаже.)
Посудіть самі, є різниця - чи то я з допомогою методів (або навіть якихось установок властивостей-не знаю, правда, яких) доб'юся вставки в набір даних, то я буду все це справа програмувати-заповнювати temp-овий файл, формувати рядки і т.д.
Це все не від лені.Я просто виходила з того-а раптом все це можна зробити простіше.

Найкраще (ИМХО) зробити ключем поле <Табельный номер> або <ИНД> (Інд.налоговий номер), а підсумкові записи "забивати" дев'ятки з молодшим розрядом = коду рядка (9999999901,9999999902,9999999903). Тоді при вставці - видаленні все буде стояти на місцях, так і підсумкові рядки не треба шукати спец.образом для того, щоб змінити там суми, - Locate і все.

По крайней мере, у нас так реалізовано (вірніше, майже так). І користувачі (ьолее 20 організацій) не скаржаться. А 8ДР, звичайно ж, редагується. Чи не бачив ще в природі жодної програми, яка б вважала її без помилок для нормального підприємства (чел.не менше 50 і з реальними, а не фіктивними нарахуваннями та виплатами).
PS. Не знаю більш дурного звіту у всіх бухгалтерії.

Забув сказати. Для передачі в податкову з НАШОГО файлу дані просто скидаються в формат податкової

MsGuns
Дякую що відповіли.
Вся справа в тому, що у мене цей файл йде без індексів, але в відсортованому вигляді (сортування виходить при вивантаженні з нашої старої програми по з / п) .Пользователі працюють з вже готовим файлом (з 3-ма останніми підсумковими записами), його -то і треба здавати в податкову .Откорректіровать що-небудь під час вивантаження даних для форми 8ДР я не можу-програма стара і без початкових кодів.
Тобто-маємо те, що імеем.Короче кажучи, я беру вже готовий файл і з ним работаю.Вот і довелося дописувати мені невеличкий проект в Delphi6.Я розумію, що для інтерфейсу з користувачем можна створити індекс, але в самому файлі (який здавати в податкову) фізично вставлені записи будуть стояти в конце.Получается, що мені без тимчасового файлу не обійтися.

І все-таки питання залишається-можна чи ні вставити запис в файл формату DBF?


PSЯ прошу пробачення, не поле TIN забивається 99991,99992,99999, а поле NP (номер по-порядку) - воно цифрове і всього 5 знаков.В самої останньої записи підбиваються ітогі.Для нашої податкової файл повинен бути певної структури і заповнений по всіма правилами (я маю на увазі 3 останні рядки) .При вивантаженні НАШОГО файлу податківці перевіряють правильність заповнення і фізичний порядок всіх записів (звичайно програмним шляхом) -що б N п / п був правильно заповнений, що б суми сходилися, що б записи з 9-ми були в кінці і т.д.

На рахунок "поганого звіту" я з Вами повністю згодна.

Вставити, звичайно, можна і ручками. відкривши файл на низькому рівні, але це, схоже складніше, ніж редагувати його з урахуванням індексу NPP, а потім просто скопіювати записи в потрібному порядку.

Спасибі всім, хто мені відповів.
Прийдеться все-таки копіювати записи в потрібному порядку.

Я звичайно перепрошую, але я думаю найпростіше буде зробити так, спочатку відредагувати DBF-файл (вставити потрібні записи і т.д.), а потім створити таблицю точнісінько таку ж як DBF-файл і за допомогою SQL-запиту перекинути туди дані відсортувавши їх за унікальним полю.

> Hawk2 (25.09.02 19:04)
Бухгалтери скажуть Вам "Велике спасибі!" 8)))

TO MsGuns: А навіщо іронізувати?

Справа в тому, що особливість 8ДР в тому, що відображається порядок рядків таблиці повинен відповідати друкованого виду (формат dbf, що здається в податкову - це фактично та ж опис, але в електронному вигляді), тому якщо це не дотримується, то бухгалтеру просто незручно працювати з такою "невпорядкованою" сіткою.
Іронія зловтіха, ображатися ІМХО не варто

Пам'ять: 0.75 MB
Час: 0.043 c