Страница: 1 |
Есть текстовый файл > 50 Mб со строками фиксированной длины. Необходимо загнать его в таблицу dbf. Сейчас делаю так: Sub formi_baz(sPUT As String, sBAZ As String) Всё работает, но долго. Можно ли ускорить?
Можно создать спецификацию для текстового файла(в виде schema.ini) и открывать текст как таблицу, а потом: dbPath=App.Path & "\temp\" pu.execute "SELECT * INTO [" & sBAZ & "] IN '" & dbPath & "'[dbase IV;] FROM [" & sPUT & "] IN '" & txtPath & "'[Text;]" Страница: 1 |
Вопрос: Текстовый файл в БД - *.dbf
Добавлено: 09.06.04 18:05
Автор вопроса: chishin
Dim s1 As String
Dim pu As DAO.Database
Dim rpu As DAO.Recordset
Set pu = DAO.OpenDatabase(App.Path & "\temp\", False, False, "dbase IV")
Set rpu = pu.OpenRecordset(sBAZ)
Open sPUT For Input As 1
Do While Not EOF(1)
Line Input #1, s1
rpu.AddNew
rpu.Fields(0) = Trim$(Mid$(s1, 1, 20)) 'Номер А
rpu.Fields(1) = Mid$(s1, 21, 12) 'Дата-время
rpu.Fields(2) = Val(Mid$(s1, 33, 6)) ' Длит
rpu.Fields(3) = Trim$(Mid$(s1, 39, 20)) 'Номер Б
rpu.Fields(4) = Trim$(Mid$(s1, 59, 5)) 'АОН
rpu.Fields(5) = Trim$(Mid$(s1, 64, 6)) 'Тр гр вх
rpu.Fields(6) = Trim$(Mid$(s1, 70, 6)) 'Тр гр ис
rpu.Fields(7) = Trim$(Mid$(s1, 86, 1)) ' длинные
rpu.Fields(8) = Trim$(Mid$(s1, 87, 15)) ' Идентификатор
rpu.Update
End If
Loop
Close 1
rpu.Close
Set rpu = Nothing
pu.Close
Set pu = Nothing
End Sub
Ответы
Всего ответов: 2
Номер ответа: 1
Автор ответа:
Gloom
Вопросов: 0
Ответов: 36
Профиль | | #1
Добавлено: 10.06.04 11:49
Номер ответа: 2
Автор ответа:
nap
ICQ: 121772779
Вопросов: 0
Ответов: 42
Профиль | | #2
Добавлено: 10.06.04 11:52
Что за странный SQL?