Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
Эсть проблема, нужно импортировать в таблицу аксеса даные из текстового файла програмным путем, всего в файле 350000 строк, если простым перебором каждой строки - это минимум 10 минут(делаю через адо), может кто-то знает более гуманный способ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 13:39 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
создаешь в Access связанную таблицу (DoCmd.TransferText) с указанием на этот файл и далее выполняешь запрос на добавление ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 13:49 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
Почему сразу связанную? Я лично просто создавал пустую таблицу (программно) и указывал ее в DoCmd.TransferText и все. Эту таблицу можно рассматривать как темповую или нет, от задачи зависит. Потом запускаешь запросы по уборке мусора из этой таблицы, который всегда обысно присутствует в текстовых файлах. Текстовый файл с 750 000 строк импортируется на Celeron466 128RAM минут 5-10, больше времени уходит на последующую работу с запросами по уборке мусора, заполнения некоторых доп. полей и т.д. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 15:07 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
SergeySVПочему сразу связанную?...Потом запускаешь запросы по уборке мусора из этой таблицы, который всегда обысно присутствует в текстовых файлах. Для того, чтобы мусор из текстового файла не тащить в таблицу, а с помощью запроса выбрать из него то, что необходимо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 15:14 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
Не понял как это делается программно (хотя как и не программно тоже) Если попытаться прилинковать эту таблицу, то Access сразу выдаст мастер импортирования, если делать это на программном уровне, то опять же не очень понятно че там тогда указываешь в TransferText ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 15:21 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 11.03.2004, 18:49 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
я так понимаю marvan дал пример когда в системе установлен аксес, а как быть когда его нету? у нас не на всех машинах он есть - уж очень он дорогой. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 09:44 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
лови чудесную ссылочку1: h**p://home.pacbell.net/cetta/dabaseII.html -обрати внимание на "Importing Data II" лови чудесную ссылочку2: h**p://www.experts-exchange.com/Databases/MS_Access/Q_20846393.html -это вообще сказка! лови чудесную ссылочку3: h**p://www.google.com.ru/search?q=ADOX.Table+DoCmd.TransferText&ie=UTF-8&oe=UTF-8&hl=ru&lr= -собственно, где искать в следующий раз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 11:19 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
за ссылочки спасибо, вторая действительно "сказака" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.03.2004, 17:21 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
2marvin: Твой пример абсолютно аналогичен моим рассуждениям, в нем ничего нового.... самое интересное (в чем у нас расхождения) скрывается я так понимаю в строке modBase.GetTab("tXls"), так чтоже там? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 11:12 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
2SergeySV: в функции ничего особенного. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. вся соль и изюминки в следующем: tSpc - системная таблица Access "MSysIMEXSpecs" в которую из программы записываются настройки файла, а настройки колонок пишутся в таблицу "MSysIMEXColumns" Редкий случай, когда Access позволяет модифицировать свои системные таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 11:58 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
Мдам, в этой функции действительно все достаточно прозрачно, я то все никак не найду где у тебя прогрммно прилинковывается таблица из текстового файла (может я конечно вчера так на отмечался, что чего-то не замечаю :) ) >>Редкий случай, когда Access позволяет модифицировать свои системные таблицы - в смысле?! многие системные таблицы можно модифицировать, единственно большинство из них конечно руками не даются, а вот через SQL запрос - пожалуйста - именно это меня спасло, когда испортилась база при копировании, причем и источник и соотв. копия. Полетели все модули и формы. Таблицы мне в ней не особо не интересовали. Оказалось что испортились только имена в записях системной таблицы хранившей системеные объекты, однако бинарное поле, с содержимым модуля было в порядке. Помогло создания в новой базу пустых модулей и обновление бинарных полей через SQL запрос. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 12:41 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
2SergeySV: Пример записи в системные таблицы: (расположено в разных местах, поэтому привожу отдельные моменты) ... tRaz.Source = "MSysIMEXColumns" ... tSpc.Source = "MSysIMEXSpecs" ... tSpc.AddNew "SpecName", mShbID tSpc.Update "DateDelim", "." tSpc.Update "DateFourDigitYear", -1 tSpc.Update "DateLeadingZeros", 0 tSpc.Update "DateOrder", 0 tSpc.Update "DecimalPoint", "," tSpc.Update "FieldSeparator", ";" tSpc.Update "FileType", 866 tSpc.Update "SpecID", CurShbID tSpc.Update "SpecType", 2 tSpc.Update "StartRow", 0 tSpc.Update "TextDelim", "" tSpc.Update "TimeDelim", ":" ... tRaz.AddNew Array("Attributes", "DataType", "FieldName", "IndexType", "SkipColumn", "SpecID", "Start", "Width"), Array(0, 10, i + 1, 0, 0, CurShbID, 0, 0) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 13:17 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
Погоди, погоди, это же всего лишь программное создание спецификации импорта, а как же все-таки происходит линкова твоего текстового файла, меня интересует твоя таблица "tXls", откуда и как она берется... я лично сналача создавал пустую таблица (или просто указывал новое имя, чтобы Access сам создал новую таблицу) куда и будет происходит импорт, ты же писал что используешь именно связанную таблицу..., что ты называешь связанной таблицей? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 13:49 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
2SergeySV: Прошу прощения. Только сейчас понял, что выдал не тот фрагмент. Дело давнее, а проект, в котором это было - не маленький. С прилинкованными таблицами рабо шла в другой процедуре. Вот её фрагмент: ... If tSpc!SpecType = 2 Then .DoCmd.TransferText acLinkFixed, CurShbID, "tLinc", fPath & "\" & fName ElseIf tSpc!SpecType = 1 Then .DoCmd.TransferText acLinkDelim, CurShbID, "tLinc", fPath & "\" & fName End If ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 14:12 |
|
||
|
импорт txt
|
|||
|---|---|---|---|
|
#18+
А ну теперь в принципе все понятно. Просто я никогда раньше не использовал тип acLink... В принципе я не вижу особой разницы между acLink... и acImport..., единственное различие, что получаемая таблица остается связанной с исходным текстовым файлом - кому-то может это будет очень необходимо, а в моей пока практике я текстовые после импорта в базу вообще удаляю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.03.2004, 14:43 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=32438163&tid=2169943]: |
0ms |
get settings: |
7ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
48ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
67ms |
get tp. blocked users: |
1ms |
| others: | 215ms |
| total: | 373ms |

| 0 / 0 |
