|
|
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
как быстро это можно организовать, т.к. у меня ~170 тысячи записей и их надо раз в 2 дня загружать и удалять старые, как это сделать побыстрее ??? как я делал, так на это уходит минут 20 - это долго, т.к. импорт в аксесе это делает за 20 сек ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 13:36 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 15:13 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ну естественно, что если записывать по одной записи, то будет долго. Надо сделать это одним SQL-выражением. Например, для dbf->mdb это можно сделать так: Код: plaintext 1. Постараюсь проверить, будет ли это работать с текстовым драйвером и насколько быстро. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 15:21 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ну в общем получилось. Вместо dbase III; надо писать Text; Пришлось описать поля в источнике ODBC для "таблицы" dbFile.txt. С разделителем "запятая" оно не хочет работать, а с полями фиксированной длины — хочет. Скорость примерно та же. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 15:37 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
а какой ты использовал драйвер в ODBC для текстового файла ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.06.2004, 15:52 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ой Вэй Надо сделать это одним SQL-выражением. Например, для dbf->mdb это можно сделать так: Код: plaintext 1. у меня такую строку не понимает: ... FROM [dBaseIII; database=D:\].table1.dbf говорит, что неправильно определен объект Parameter а параметром считает: \].sprav.dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 15:52 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
К сожалению не могу найти пример с текстовым файлом, наверно уже стёр. Но с dbf у меня это работает регулярно. у меня такую строку не понимает: ... FROM [dBaseIII; database=D:\].table1.dbf говорит, что неправильно определен объект Parameter а параметром считает: \].sprav.dbf Откуда известно, что параметром считает именно "\].sprav.dbf"? Просьба скриншот сообщения в студию. Как SQL-выражение подаётся на вход (написано в тексте программы как литерал)? Вроде надо писать dBase III (через пробел). Просьба отвечать здесь, я уже подписался на эту тему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 16:30 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
ой, наврал безнадежно, прошу прощения! на самом деле было так: работаю в Builder 6.0 есть база e.mdb надо из нее выгрузить одну из таблиц в dbf, например таблицу sprav делаю все это через ADO вопрос в том, что с mdb она работает через ADOConnection1 - через MS Jet, а с dbf - через ADOConnection2 - через ODBC. делать пытаюсь через ADOQuery или ADOCommand... наверное не важно какой должен быть текст запроса, чтоб скопировать поля, например, ARTICUL и NAME из sprav (e.mdb) в sprav.dbf ? что должно быть Connection'ом для запроса? INSERT INTO sprav ( Articul, Name ) SELECT ARTICUL, NAME FROM [dBase V;database='D:\'].sprav.dbf; ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 16:44 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Во-первых, где ответы на мои вопросы? Во-вторых, вы хотите переписать данные из mdb в dbf есть база e.mdb, надо из нее выгрузить одну из таблиц в dbf , а запрос пишете в обратную сторону. В-третьих, явное указание в тексте запроса пути к базе данных DBF как раз и означает, что "Connection'ом для запроса" должна быть база mdb. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 17:07 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ой ВэйВо-первых, где ответы на мои вопросы? вопрос насчет параметра уже не актуален - он выдавал ошибку про неопределенный параметр, а в свойствах Parametres показывал \].sprav.dbf как параметр если строка FROM была такая: FROM [dBaseIII; database=D:\].sprav.dbf (насчет table1.dbf я как раз и "наврал") SQL выражение передается свойством SQL ADOQuery либо свойством CommandText ADOCommand в Object Inspector'е Во-вторых, вы хотите переписать данные из mdb в dbf есть база e.mdb, надо из нее выгрузить одну из таблиц в dbf , а запрос пишете в обратную сторону. ну да, конечно, просто на самом деле мне надо и из dbf в mdb и потом обратно из mdb в dbf... остановися на том, который из dbf в mdb. В-третьих, явное указание в тексте запроса пути к базе данных DBF как раз и означает, что "Connection'ом для запроса" должна быть база mdb. я так и думал...) я понимаю, что все логично, но не понимаю почему на запрос INSERT INTO spra (NAME) SELECT NAME FROM [dBase III;database='D:\x'].spra.dbf; (перенес все в каталог D:\x для удобства, таблицу упростил до двух столбцов NAME и ARTICUL и переименовал в spra) он выдает ошибку: [ Строка "D:\x" задает ошибочный путь.Проверьте, что путь указан правильно и имеется подключение к серверу, на котором находятся файлы. ] подключением к базе e.mdb, которая также расположенна в каталоге D:\x вроде бы теперь без ошибок.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 17:41 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
а вот такая штука сработала!! ура! INSERT INTO spra (NAME, ARTICUL) SELECT NAME, ARTICUL FROM spra IN 'd:\x\e.mdb'; спасибо!! огромное! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 18:17 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
итак: экспорт из mdb в dbf, ADOCommand: INSERT INTO spra (NAME, ARTICUL) SELECT NAME, ARTICUL FROM spra IN 'd:\x\e.mdb'; экспорт из dbf в mdb, ADOCommand: INSERT INTO spra (NAME,ARTICUL) IN 'd:\x\e.mdb' SELECT NAME,ARTICUL FROM spra; (Connection - к dbf'ке) ура ура ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 18:44 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Хорошо что получилось, конечно. Но так и не понятно, почему не работало. У меня работает. INSERT INTO TTT(FFF1,FFF2) SELECT FFF1,FFF2 FROM [dBase III; database=GGG\].XXX.dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.11.2005, 19:25 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
надо разобраться... сейчас сделаю один в один... что такое GGG? чему равно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 09:51 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
D:\x\e.mdb D:\x\XXX.DBF ADOCommand, в свойстве CommandText пишу: INSERT INTO TTT(FFF1,FFF2) SELECT FFF1,FFF2 FROM [dBase III; database='D:\x\'].XXX.DBF та же ошибка: [ Строка "D:\x\" задает ошибочный путь.Проверьте, что путь указан правильно и имеется подключение к серверу, на котором находятся файлы. ] а если написать FROM [dBase III; database=\].XXX.DBF вылезает другая ошибка: [ Объект 'XXX.DBF' не найдем ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.] причем тут MS Jet? это же драйвер для mdb... это нормально, что он им ищет dbf'ку ? как правильно прописать путь? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 10:18 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
а если написать FROM [dBase III; database=\].XXX.DBF вылезает другая ошибка: [ Объект 'XXX.DBF' не найдем ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.] причем тут MS Jet? это же драйвер для mdb... это нормально, что он им ищет dbf'ку ? Ты что, дразнишься? Сам же пишешь: Код: plaintext что такое GGG? чему равно... У меня именно так, т.е. относительный путь. как правильно прописать путь? Ну уж не знаю... я пишу путь, как видишь, без кавычек, хотя и не уверен, что с кавычками нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:42 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Чтобы ничего не казалось, проверил насчёт полного пути и кавычек. Просто полный путь -- работает. Полный путь в одинарных кавычках -- "ошибочный путь". Полный путь в двойных кавычках -- "недопустимое использование скобок". Это не есть хорошо, т.к. в пути могут быть пробелы. Надо бы проверить... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:52 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Полный путь, в котором есть пробел (не на краю) и без кавычек -- нормально. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 12:55 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ой Вэй Ты что, дразнишься? Сам же пишешь: Код: plaintext что такое GGG? чему равно... У меня именно так, т.е. относительный путь. как правильно прописать путь? Ну уж не знаю... я пишу путь, как видишь, без кавычек, хотя и не уверен, что с кавычками нельзя. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:20 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
(предыдущий пост случайный) Ой Вэй Ты что, дразнишься? Сам же пишешь: Код: plaintext ну да, все правильно... не дразнюсь я как правильно прописать путь? Ну уж не знаю... я пишу путь, как видишь, без кавычек, хотя и не уверен, что с кавычками нельзя. если я пишу полный путь D:\x то он все, что после [ : ] принимает за имя параметра! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:24 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
с относительным путем работает! INSERT INTO TTT(FFF1,FFF2) SELECT FFF1,FFF2 FROM [dBase III; database=x\].XXX.DBF; как написать FROM с абсолютным путем? к базе D:\x\XXX.DBF ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:32 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ой Вэй а если написать FROM [dBase III; database=\].XXX.DBF вылезает другая ошибка: [ Объект 'XXX.DBF' не найдем ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.] причем тут MS Jet? это же драйвер для mdb... это нормально, что он им ищет dbf'ку ? Ты что, дразнишься? Сам же пишешь: Код: plaintext просто мне казалось, что раз MS Jet - драйвер для mdb, а ODBC - для dbf, то и искать dbf он должен не ядром MS Jet, а при помощи ODBC... я не прав? как можно механизмом доступа с одному типу БД прочитать другой тип БД... разве можно при помощи MS Jet соединяться с dbf-базами? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:36 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ещё раз повторю, что у меня работает и абсолютный, и относительный путь, но без кавычек. Код: plaintext На всякий случай уточню, что в программе на С, если путь пишется ручками, а не находится в строковой переменной, должен выглядеть как Код: plaintext просто мне казалось, что раз MS Jet - драйвер для mdb, а ODBC - для dbf, то и искать dbf он должен не ядром MS Jet, а при помощи ODBC... я не прав? как можно механизмом доступа с одному типу БД прочитать другой тип БД... разве можно при помощи MS Jet соединяться с dbf-базами? Эх... если бы всё было так. Во-первых, ODBC -- не для dbf, а для разных типов баз, на то он и "Open". Но MS Jet работает с dbf (а также с Excel, Text и кое-чем ещё) не через ODBC, а с помощью "ISAM". Попробуй написать не "database=...", a "DSN=...", что было бы логичнее для ODBC, и увидишь, что оно тебе скажет... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:51 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
еще раз, итак... на этот через Connection к mdb! из dbf в mdb: INSERT INTO TTTS(FFF1,FFF2) SELECT FFF1,FFF2 FROM [dBase III; database=x\].XXXS.DBF; из mdb в dbf: INSERT INTO [dBase III; database=x\].XXXJ.DBF SELECT FFF1,FFF2 FROM TTTJ как тут прописать абсолютный путь? пример.... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:51 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
Ой Вэй "FROM [dBase III; database=D:\\Dir1\\].File1.dbf" забавно... так, он у меня \\Dir1\\].File1.dbf - считает параметром, то есть все, после двоеточия ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.11.2005, 13:56 |
|
||
|
из *.txt d *.mdb
|
|||
|---|---|---|---|
|
#18+
все! дошло! еще полдня убил на эту строчку...))) дело было в том, что в Properties свойство ParamCheck стояло изначально в true и при введении абсолютного пути в строку FROM все символы, после двоеточия, Builder принимал за имя параметра, разумеется неопределенного нигде... ParamCheck = false; и все работает! FROM [dBase III; database=D:\\mydir].mytable.dbf ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.12.2005, 20:14 |
|
||
|
|

start [/forum/topic.php?all=1&fid=57&tid=2032343]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
32ms |
get topic data: |
6ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 212ms |
| total: | 313ms |

| 0 / 0 |
