|
|
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Всем привет! В Database Explorer есть опция Pack table, а можно ли её вызвать во время выполнения программы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 14:04 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kВсем привет! В Database Explorer есть опция Pack table, а можно ли её вызвать во время выполнения программы? Вызвать-то ее можно... Вот только будет ли она работать... Для того, чтобы таблицу упаковать (удалить записи, помеченные как удаленные) таблица должна находиться в монопольном доступе. Если кто-то (программа, другой пользователь) уже открыл таблицу, то упаковка будет невозможна, так как не удастся обеспечить монопольный доступ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 15:11 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Станислав C. Для того, чтобы таблицу упаковать (удалить записи, помеченные как удаленные) таблица должна находиться в монопольном доступе. Если кто-то (программа, другой пользователь) уже открыл таблицу, то упаковка будет невозможна, так как не удастся обеспечить монопольный доступ... Да, я об этом знаю, но это уже следующий вопрос... Станислав C. Вызвать-то ее можно... Вот только будет ли она работать... Как? Буду очень благодарна, если подскажешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 15:50 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Если доступ через БДЕ, то поищи на дельфийном форуме, там было точно, недавно Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 15:56 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасЕсли доступ через БДЕ, то поищи на дельфийном форуме, там было точно, недавно Posted via ActualForum NNTP Server 1.3 Нет, пишу на Visual C++, используя ODBC ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 16:08 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Вот, для акцеса, может по аналогии ? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 16:11 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Как? Буду очень благодарна, если подскажешь :) Как-как - читает все записи из исходного файла и записывает в выходной только те, у которых нет пометки "удаленная". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 16:37 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
MasterZivКак-как - читает все записи из исходного файла и записывает в выходной только те, у которых нет пометки "удаленная". Это тоже вариант, только вот как достучаться до этой пометки? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 16:48 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
млин, я для чего пример с SQLConfigDataSource показал ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 16:59 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабасмлин, я для чего пример с SQLConfigDataSource показал ? С ним я сейчас и разбираюсь, но пока не получается :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.09.2005, 17:02 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. Я, конечно, дико извиняюсь... Но разве AnsiString и ShowMessage не "привилегия" Билдера ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 06:39 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Станислав C.разве AnsiString и ShowMessage не "привилегия" Билдера ? разумеется да ! код бильдеровский, но суть-то не меняется, вызываются функции ODBC Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 06:43 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас! Как я понимаю, упаковка прозводится при вызове функции SQLConfigDataSource, с командой COMPACT_DB. Так? Я делаю следующее: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. SQLInstallerError ругается "Недопустимый источник данных". Я что-то делаю не так? Или может быть COMPACT_DB работает только для акцеса? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:52 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kможет быть COMPACT_DB работает только для акцеса?тут я не помошник, потому как не пробовал эту функцию больше ни с чем, только с акцесом. Может на МСДН поищешь ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 14:56 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасМожет на МСДН поищешь ? Да я там и искала. Все примеры с COMPACT_DB именно для акцесовских баз. Твои ODBC-ишные функции работают и для вижуала, да только боюсь, что не применимо к dbf-формату. Надо искать что-то ещё. Но в любом случае спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:23 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kДа я там и искала. Все примеры с COMPACT_DB именно для акцесовских баз. Твои ODBC-ишные функции работают и для вижуала, да только боюсь, что не применимо к dbf-формату. Надо искать что-то ещёможет драйвер другой попробовать ? Lora__kВ Database Explorer есть опция Pack tableон ведь как-то делает ! значит есть стандартный способ. PS: запрос типа insert into newtable select ... form oldtable не проканает ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:28 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабасможет драйвер другой попробовать ? Сейчас попробую, хотя я нормально работаю с dbf через него... Карабас Барабас Lora__kВ Database Explorer есть опция Pack tableон ведь как-то делает ! значит есть стандартный способ. В том-то и дело! Карабас БарабасPS: запрос типа insert into newtable select ... form oldtable не проканает ? это идея :) попробую, спасибо, потом напишу что получится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.09.2005, 15:38 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Я делал через com- интрефейс DAO. Примерно так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 10:50 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабас! Карабас Барабас может драйвер другой попробовать ? Без разницы какой драйвер. через этот и многие другие подключается нормально, а если подсовываешь левый какой-нибудь, то ругается "Компонент не найден в реестре" Так что похоже "Недопустимый источник данных" - это как раз формат *.dbf Карабас Барабас PS: запрос типа insert into newtable select ... form oldtable не проканает ? Запрос "SELECT INTO newtable FROM oldtable" создает newtable, а затем переписывает туда все записи из oldtable, к сожалению и помеченные на удаление :-( Как бы до этой пометки достучаться?! Alex_VC! Alex_VCЯ делал через com- интрефейс DAO. Примерно так: Примерно тоже самое, функция CompactDatabase прекрасно работает для формата *.mdb, а на *.dbf ругается... Спасибо всем за участие, но это все не то! Можно конечно перегонять dbf в mdb, потом упаковывать, и назад, но уж очень не хочется... Тем более если В Database Explorer есть опция Pack table, то все это должно делаться как-то просто!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 14:21 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kКарабас Барабас PS: запрос типа insert into newtable select ... form oldtable не проканает ? Запрос "SELECT INTO newtable FROM oldtable" создает newtable, а затем переписывает туда все записи из oldtable, к сожалению и помеченные на удаление Это немного другой запрос. А озвученный мной запрос не проходит ? (просто нету пока возможности самому попробовать) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 15:41 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасЭто немного другой запрос. А озвученный мной запрос не проходит ? (просто нету пока возможности самому попробовать) Нет, не проходит. Оба запроса переписывают все (в том числе и помеченные на удаление) записи из старой таблицы в новую. Похоже придется разбираться со структурой dbf файлов, там есть байт, который содержит флаг удаления для каждой записи, его и проверять, короче работать напрямую с файлами... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 16:44 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Я бы уже задумался о переходе на какой-нибудь SQL-сервер :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 16:53 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Чем в данный момент и занимаемся :) Просто до сих пор работали с dbf форматом, а теперь переходим на на FireBird, в сзвязи с чем надо dbf конвертить в gdb... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 17:12 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kпереходим на на FireBird, в сзвязи с чем надо dbf конвертить в gdb если ФБ, то расширение советую сменить на FDB, меньше будет проблем :) и еще вот сюда сходи: http://www.sql.ru/forum/actualthread.aspx?tid=217085 Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 17:24 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабасесли ФБ, то расширение советую сменить на FDB, меньше будет проблем :) Хорошо, спасибо за совет, я об этом подумаю :) Карабас Барабаси еще вот сюда сходи: http://www.sql.ru/forum/actualthread.aspx?tid=217085 Тоже спасибо, завтра поразбираюсь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.09.2005, 17:38 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__k Карабас БарабасЭто немного другой запрос. А озвученный мной запрос не проходит ? (просто нету пока возможности самому попробовать) Нет, не проходит. Оба запроса переписывают все (в том числе и помеченные на удаление) записи из старой таблицы в новую. Похоже придется разбираться со структурой dbf файлов, там есть байт, который содержит флаг удаления для каждой записи, его и проверять, короче работать напрямую с файлами... Ну тады можно сделать через старую Fox'у: use mytable.dbf pack quit Все это помещается в командный файл (например, pack.prg), и запускается примерно так: foxprox pack.prg Можно и интерфейс накрутить (например, выбор файла(файлов)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 10:56 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Alex_VC Ну тады можно сделать через старую Fox'у: use mytable.dbf pack quit Все это помещается в командный файл (например, pack.prg), и запускается примерно так: foxprox pack.prg Можно и интерфейс накрутить (например, выбор файла(файлов)) Алекс, спасибо, так работает :) Только, если я правильно понимаю, без Fox'а это все дело работать не будет, чтож мне теперь каждому пользователю на машину FoxPro ставить?... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 12:33 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__k Alex_VC Ну тады можно сделать через старую Fox'у: use mytable.dbf pack quit Все это помещается в командный файл (например, pack.prg), и запускается примерно так: foxprox pack.prg Можно и интерфейс накрутить (например, выбор файла(файлов)) Алекс, спасибо, так работает :) Только, если я правильно понимаю, без Fox'а это все дело работать не будет, чтож мне теперь каждому пользователю на машину FoxPro ставить?... :) Ну, можне еще немного поизвращаться... 1. Например, уж если речь зашла о "старом фоксе", то он позволял создавать самодостаточные ехе-шники... То есть пишешь фоксовую программу, компилируешь ее в ехе-шник (только надо выбрать Standalone EXE, чтобы не таскать за собой библиотеки поддержки), после этого кидаешь ее тем пользователям, кому это необходимо... 2. Можно еще использовать ODBC драйвер для Visual FoxPro. А на выполнение посылать запрос вида: Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 13:29 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
За умеренную сумму могу написать "сжиматель" в виде ДЛЛ Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 13:37 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасЗа умеренную сумму могу написать "сжиматель" в виде ДЛЛ Спасибо, но хочу сама разобраться :) Alex_VC 2. Можно еще использовать ODBC драйвер для Visual FoxPro. А на выполнение посылать запрос вида: select * from <old table> where not deleted() into table <new table> При выполнении запроса вылетает ошибка "Ошибка синтаксиса(пропущен оператор) в выражении запроса ' not deleted() into table owners' " А что это за функция deleted()? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 14:20 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__k Alex_VC 2. Можно еще использовать ODBC драйвер для Visual FoxPro. А на выполнение посылать запрос вида: select * from <old table> where not deleted() into table <new table> При выполнении запроса вылетает ошибка "Ошибка синтаксиса(пропущен оператор) в выражении запроса ' not deleted() into table owners' " А что это за функция deleted()? Вообще-то это я давал ответ... В Фоксе функция deleted() используется для распознавания помеченных к удалению записей. Поэтому конструкция "not deleted()" в выражении запроса должна вернуть все непомеченные записи... Перед тем, как предложить решение, я попробовал подобного рода запрос (с "not deleted()") и он не вызвал никаких проблем... Правда я работаю через ADO... На всякий случай приведу параметры, с которыми я подключался к своему dbf файлу: Код: plaintext 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 14:31 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Станислав C. CВообще-то это я давал ответ... Станислав, я очень извиняюсь! :) Станислав C. В Фоксе функция deleted() используется для распознавания помеченных к удалению записей. Поэтому конструкция "not deleted()" в выражении запроса должна вернуть все непомеченные записи... Перед тем, как предложить решение, я попробовал подобного рода запрос (с "not deleted()") и он не вызвал никаких проблем... У меня все таки этот запрос не проходит, даже если использовать твою строку соединения... Станислав C. Правда я работаю через ADO... Может быть в этом дело? Станислав C. Кстати, в параметрах подключения уже указано, чтобы удаленные записи не брать... За это отвечает флаг Deleted? Почему же он тогда не работает? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.09.2005, 14:52 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Если кому интересно, то упаковать dbf таблицу можно таким способом, исходя из структуры dbf файла: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 10:32 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Прошу прощения, забыла скопировать завершающий символ, вот правильный код :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 11:49 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Там в хедере количество записей записано .. я вот не помню, это включая удаленные или нет ... если включая, то надо его корректировать Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 11:55 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасТам в хедере количество записей записано .. я вот не помню, это включая удаленные или нет ... если включая, то надо его корректировать Включая удаленные, я как раз с этой проблемой столкнулась :) Сейчас исправлю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 12:06 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
И еще: я так понял, ты руками задаешь размеры хедера и записи. В принципе в хедере есть информация по количеству полей, т.о. размер хедера можно вычислить. И про размер записи есть инфа ... Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 12:10 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасИ еще: я так понял, ты руками задаешь размеры хедера и записи. В принципе в хедере есть информация по количеству полей, т.о. размер хедера можно вычислить. И про размер записи есть инфа ... Так я эти значения и беру из структуры хедера: начиная с 4го байта (размером 4б) там хранится RecordsCount - Количество записей в таблице, я его оттуда считываю и записываю в переменную iRecordCount; Код: plaintext дальше в восьмом\девятом байте лежит HeaderSize - Размер заголовка в байтах, а в 10\11 байтах RecordSize - Размер записи в байтах. их получаю аналогично Код: plaintext 1. 2. N=(shHeaderSize - 33)/32; Разве не так? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 12:50 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Просто не вчитался :) Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 13:11 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Ну вот теперь вроде всё :) Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:10 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Ну вроде ниче, только непонятно, зачем 2 раза пробегать исходный файл ? И еще: я бы при помощи файлов, проецируемых в память делал, и быстрее работать будет, на порядок, и ... логичнее, да и проще. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:14 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасНу вроде ниче, только непонятно, зачем 2 раза пробегать исходный файл ? Так первый раз, чтобы получить количество записей помеченных на удаление, отсюда получаю новое количество записей в файле, потом подправляю хедер и перезаписываю файл уже без удаленных записей, а как ещё? :) Карабас Барабас И еще: я бы при помощи файлов, проецируемых в память делал, и быстрее работать будет, на порядок, и ... логичнее, да и проще. Можно об этом поподробнее? Я конечно и сама поищу, но буду благодарна, если подскажешь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:31 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
1. можно один раз пробежаться, считая реально скопированные записи, потом в новом файле вернуться в заголовок и записать правильное значение числа записей. 2. CreateFile, CreateFileMapping, MapViewOfFile ....... Рихтер в помощь Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:33 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас Барабаспотом в новом файле вернуться в заголовок и записать правильное значение числа записей. А разве можно перезаписывать файл частично? Карабас Барабас 2. CreateFile, CreateFileMapping, MapViewOfFile ....... Рихтер в помощь спасибо, я с этим поразбираюсь :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:41 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kА разве можно перезаписывать файл частично?а ты попробуй :) зачем тогда все эти Seek ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:46 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
И правда можно :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 16:56 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kА количество полей, если надо, можно вычислить исходя из рамера заголовка: N=(shHeaderSize - 33)/32; Разве не так? Вообще-то не так. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.09.2005, 19:05 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
White Owl! А зачем так сложно? И в чем я не права? :) Ведь DBF-файл состоит из двух частей: хедер и сами записи. хедер включает в себя 32 бита загололовка dbf файла и описания полей - N раз по 32 байта, плюс завершающий символ - 1 байт. Таким образом размер хедера DBF-файла в байтах составляет: (32+32xN+1) байт. Этот же размер можно извлечь из 8\9 байтов заголовка - iHeaderSize Следовательно количество полей равно: N:=(iHeaderSize-33)/32 байт. Я во все это дело влезла совсем недавно, поэтому буду благодарна, если ты мне объяснишь, что не так :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 09:56 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Видимо, наш ночной белый друг имел в виду, что форматов dbf-а много , и у них разные заголовки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 15:19 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
MasterZivВидимо, наш ночной белый друг имел в виду, что форматов dbf-а много , и у них разные заголовки. То есть он предложил универсальный подход, а у меня частный случай. Понятно, спасибо :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 16:17 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Lora__kА зачем так сложно? И в чем я не права? :) Ведь DBF-файл состоит из двух частей: хедер и сами записи. хедер включает в себя 32 бита загололовка dbf файла и описания полей - N раз по 32 байта, плюс завершающий символ - 1 байт. Таким образом размер хедера DBF-файла в байтах составляет: (32+32xN+1) байт. Этот же размер можно извлечь из 8\9 байтов заголовка - iHeaderSize Следовательно количество полей равно: N:=(iHeaderSize-33)/32 байт. Во первых, там не один завершающий байт, а один или два. То есть формула для dBaseII и его ближайших родственников будет (32+32*N+1) или (32+32*N+2). То есть в итоге читать 8 и 9 байты заголовка абсолютно необходимо :) Во вторых, FoxPro добавляет в заголовок после описания полей еще и так называемый Database Container на 263 байта размером. Ну и наконец dBase7 у которого совершенно другая структура заголовка :) Честно говоря, тот кусок который я уже запостил он слегка неверен. Выдрал его из чьего-то примера. В реальности эта процедура у меня намного длиннее :) Самое подробное описание xBase файлов что я видел лежит здесь: http://www.clicketyclick.dk/databases/xbase/format/ Там разве что dBase7 не описан, но с этими dbf-ами ты вряд-ли столкнешься :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2005, 19:29 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
White Owl! Спасибо за разъяснения и за ссылку :) Сейчас, мне достаточно того, что я сделала, поскольку работаем с dbf файлами только такого формата, которые сами же и содавали. А в будущем это наверняка пргодится :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 10:09 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Дак вроде ж на ФБ собрались переходить ? Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 10:12 |
|
||
|
Pack table для формата dbf
|
|||
|---|---|---|---|
|
#18+
Карабас БарабасДак вроде ж на ФБ собрались переходить ? Да, так и переходим... Имела в виду, что все созданные раньше dbf файлы именно в таком формате, и только их сейчас и надо паковать, а после чего конвертить в gdb, ну или fdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2005, 11:03 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2032723]: |
0ms |
get settings: |
4ms |
get forum list: |
8ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
54ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 205ms |
| total: | 330ms |

| 0 / 0 |
