|
|
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Как объединить идентичные таблицы ? Delphi 2005 , ADO Имена файлов одинаковы A.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12 D.dbf 12 штук между собой таблицы лежат в разных папках C:\1, C:\2- C:\12 Желательно в одном запросе или цикле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 06:36 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
DBF имеет структуру: -заголовок -данные -байт конца файла 0x1A Все что надо знать о заголовке DBF: Число записей - 4 байта (integer) со смещением +4 от начала файла Длина заголовка - 2 байта (word) со смещением +8 от начала файла Длина записи - 2 байта (word) со смещением +10 от начала файла Для DBF с одинаковой структурой длина заголовка одинакова. Слияние: Работаешь с DBF как с обыкновенными файлами: -первую DBF копируешь в новый файл полностью за исключением последнего байта -из всех последующих вырезаешь данные - часть между заголовком и последним байтом и дописываешь в конец нового файла. -дописываешь в конец нового файла байт завершения = 0x1A -правишь в заголовке нового файла число записей Все Число записей рассчитываешь по формуле (<размер нового файла> - 1 - <длина заголовка>) / <длина записи>. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 09:35 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Слияние: Работаешь с DBF как с обыкновенными файлами: -первую DBF копируешь в новый файл полностью за исключением последнего байта -из всех последующих вырезаешь данные - часть между заголовком и последним байтом и дописываешь в конец нового файла. -дописываешь в конец нового файла байт завершения = 0x1A -правишь в заголовке нового файла число записей Спасибо большое но юзер я подкажи примерный код пожалуйсто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 10:45 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Var InDir,OutDir:String; // объявление строковых переменных begin InDir:='c:\1\'; // каталог исходных файлов OutDir:='c:\2\'; // каталог записуемых файлов CopyFile(PChar(InDir+'1.DBF'),PChar(OutDir+'1.DBF'),false); CopyFile(PChar(InDir+'2.DBF'),PChar(OutDir+'2.DBF'),false); end; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 12:36 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
ПОчему выдает ошибку DataModule2.ADOQuery1.ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;User ID=Admin;Data Source=C:\;Extended Properties=dBASE IV;Persist Security Info=False'; Select * From ('1\A.dbf'), ('2\A.dbf') ......('12\A.dbf') Ошибка недопустимое имя 1\A.dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 13:21 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Пуск \ Настройка \ Панель управления \ Администрирование \ Источники данных (ODBC) \ закладка Системные DSN создать новый источник данных (или найти среди существующих) Драйвер - выбрать Microsoft FoxPro VFP Driver (*.dbf) Имя источника данных - любое, я буду использовать DBF Описание - любое Тип базы данных - поставить точку Free Table directory (Отдельные таблицы) Путь - указать путь к папке в которой расположены ваши папки 1, 2, ..., 12. На пример C:\DBF Код: plaintext SQL Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. Если вместо драйвера FoxPro выбрать DBase - то все dbf должны быть в одной папке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 14:29 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Спасибо пробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.09.2009, 14:46 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
У меня 12 папок выдает такую ошибку "UNIONs error" вот нашел что вроде должно быть до 10 UNION SQL: Too many UNIONs (Error 1834) The maximum number of UNIONs (10) has been exceeded. For more information, see SELECT - SQL. как же быть ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.09.2009, 12:20 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
>> golsa напиши код пожалуйста обледенение dbf как файлов Не могу с sql заколебался с циклами Пожалуйсто ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2009, 16:19 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
var i:integer; begin i:=1; while i<12 do begin ................................ ...................... ............... end ; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2009, 16:22 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
FileName: Общее имя для всех файлов, из которых будет собираться один CombinedFileName: Имя файла, который получится в итоге } function CombineFiles(FileName, CombinedFileName : TFileName) : Boolean; var i: integer; fs, sStream: TFileStream; filenameOrg: String; begin i := 1; fs := TFileStream.Create(CombinedFileName, fmCreate or fmShareExclusive); try while FileExists(FileName) do begin sStream := TFileStream.Create(FileName, fmOpenRead or fmShareDenyWrite); try fs.CopyFrom(sStream, 0); finally sStream.Free; end; Inc(i); FileName := ChangeFileExt(FileName, '.'+ FormatFloat('000', i)); end; finally fs.Free; end; end; как переделать код под мой ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2009, 08:25 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#18+
Может без цикла можно оьеденить ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2009, 08:56 |
|
||
|
Как объединить идентичные таблицы ? ADO
|
|||
|---|---|---|---|
|
#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. 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. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2009, 11:04 |
|
||
|
|

start [/forum/topic.php?fid=56&msg=36219704&tid=2015699]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
157ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 14ms |
| total: | 264ms |

| 0 / 0 |

Извините, этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
... ля, ля, ля ...