powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при работе с ADO
17 сообщений из 17, страница 1 из 1
Ошибка при работе с ADO
    #32555786
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем здравствуйте!

Я задавал вопрос насчет выгрузки данных в dbf. Так вот.
Работает, но через раз...
При первом запуске выдает "Выбранный тип сортировки не поддерживается операционной системой"!

Кто-нибудь, знает, что за ошибка?
Не сортирую я ни фига... Ошибка вываливается на строчке .Update

Если нажать кнопку еще раз, все срабатывает....

P.S.
ADO 2.5 Windows XP RUS
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32555901
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
На код бы взглянуть.
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32555914
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нет проблем

Copyright (C) Processor :)...


Код: 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.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
Sub CreateDBF()
Dim dbfconn As ADODB.Connection
Dim dbfCmd As ADODB.Command
Dim dbfRS As ADODB.Recordset
Dim k As Long
Dim N As Long

    Dim pDBF As String
    pDBF = "C:\payorder.dbf"
     If Len(Dir(pDBF)) >  0  Then
        Kill pDBF   'Я пересоздаю dbf каждый раз ЗАНОВО -
    End If          'это НЕ диктуется ADO!
   Set dbfconn = New ADODB.Connection
    With dbfconn
        .Provider = "Microsoft.Jet.OLEDB.4.0"
        .Properties("Extended Properties") = "dBase IV"
        .Properties("Data Source") = "C:\" 'pDBF 'pathToArc
        .Open
    End With
    DoEvents
    Set dbfCmd = New ADODB.Command
    With dbfCmd
        .ActiveConnection = dbfconn
        .CommandTimeout =  10 

        .CommandText = "CREATE TABLE PAYORDER (" & _
                    " DateDoc datetime, " & _
                    " DocNumber char(24), " & _
                    " OrgName char(100), " & _
                    " OrdINN char(20), " & _
                    " DTAccountC char(30), " & _
                    " SCDT1_Kind char(50), " & " SCDT1_Code char(100), " & " SCDT1_Name char(100), " & _
                    " SCDT2_Kind char(50), " & " SCDT2_Code char(100), " & " SCDT2_Name char(100), " & _
                    " SCDT3_Kind char(50), " & " SCDT3_Code char(100), " & " SCDT3_Name char(100), " & _
                    " CTAccountC char(30), " & _
                    " SCCT1_Kind char(50), " & " SCCT1_Code char(100), " & " SCCT1_Name char(100), " & _
                    " SCCT2_Kind char(50), " & " SCCT2_Code char(100), " & " SCCT2_Name char(100), " & _
                    " SCCT3_Kind char(50), " & " SCCT3_Code char(100), " & " SCCT3_Name char(100), " & _
                    " Summa numeric(17,2), " & " NDS numeric(17,2)  , " & _
                    " OpID numeric(10), " & " OpName char(100), " & " CassaID char(24), " & _
                    " CassaName char(100), " & " TypeID numeric(2), " & " TypeName char(100), " & _
                    " Comment char(254) )"
        .Execute            ' создать таблицу
    End With
    Set dbfRS = New ADODB.Recordset
    Set dbfRS.ActiveConnection = dbfconn
    
    With dbfRS
        .CursorLocation = adUseClient
        .CursorType = adOpenDynamic
        .LockType = adLockOptimistic
        '.Sort = ""
        .Open "SELECT * FROM PAYORDER"
        '.Sort = ""
        
        ' записать файл информацию о реализациях
        For k =  0  To UBound(RealizeData) -  1 
            .AddNew
            !DateDoc = RealizeData(k).DateDoc
            !DocNumber = "Номер документа"
            !DTAccountC = RealizeData(k).DTAccountCode
            !CassaID = RealizeData(k).CassaID
            !CassaName = RealizeData(k).CassaName
            !Comment = "Пробная строка"
            !CTAccountC = RealizeData(k).CTAccountCode
            !NDS =  0 . 18 
            !OpID = RealizeData(k).OpID
            !OpName = RealizeData(k).OpName
            !OrdINN = OrgINN
            !OrgName = Organization
            !SCDT1_Code = RealizeData(k).SCDT1_Code
            !SCDT1_Kind = RealizeData(k).SCDT1_Kind
            !SCDT1_Name = RealizeData(k).SCDT1_Name
            !SCDT2_Code = RealizeData(k).SCDT2_Code
            !SCDT2_Kind = RealizeData(k).SCDT2_Kind
            !SCDT2_Name = RealizeData(k).SCDT2_Name
            !SCDT3_Code = RealizeData(k).SCDT3_Code
            !SCDT3_Kind = RealizeData(k).SCDT3_Kind
            !SCDT3_Name = RealizeData(k).SCDT3_Name
            !SCCT1_Code = RealizeData(k).SCCT1_Code
            !SCCT1_Kind = RealizeData(k).SCCT1_Kind
            !SCCT1_Name = RealizeData(k).SCCT1_Name
            !SCCT2_Code = RealizeData(k).SCCT2_Code
            !SCCT2_Kind = RealizeData(k).SCCT2_Kind
            !SCCT2_Name = RealizeData(k).SCCT2_Name
            !SCCT3_Code = RealizeData(k).SCCT3_Code
            !SCCT3_Kind = RealizeData(k).SCCT3_Kind
            !SCCT3_Name = RealizeData(k).SCCT3_Name
            !Summa = RealizeData(k).Summa
            !TypeID = RealizeData(k).TypeID
            !TypeName = RealizeData(k).TypeName
           .Update ' ВОТ ТУТА ВИСНЕТ!!!
Next k
        
    DoEvents
    
    End With

End Sub



...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556190
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Правильно ли создаётся заголовок dbf?
(посмотри каким-нибудь dbf-viewer'ом).
2. Если viewer правильно отображает поля,
то и в пустом рекордсете информация о полях
должна быть выкачана из dbf правильно
(посмотри это после оператора .Open "SELECT * FROM PAYORDER")
3. На каком шаге k виснет?
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556219
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заголовок создается правильно.

Виснет на k = 0, т.е. сразу.

Причем, если в обработчике ошибок поставить Resume(!), со второго раза он "пробивает" :), и дальше все работает нормально!

P.S. Массив начинается с 0...
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556282
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
перед "SELECT * FROM PAYORDER" поставь

Код: plaintext
1.
2.
3.
4.
5.
    Start = Timer    ' Задает начало паузы.
 
    Do While Timer < Start +  2 
        DoEvents     ' Передает управление другим процессам.
 
    Loop

есть подозрение, что система не успевает создать файл, а ты к нему уже с запросами лезешь.
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556323
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2marvan
Я пока вышел из положения, поставив Resume...

Сейчас попробую Ваш вариант...
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556345
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не получилось :(. Ошибка все равно вылазит...

Если файл явно удалить перед SELECT ом вылазит такая ошибка

Объект 'PAYORDER' не найден ядром базы данных Microsoft Jet. Проверьте существование объекта и правильность имени и пути.

Ни слова про сортировку...
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556481
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Должно быть следующее:
Код: plaintext
1.
                    " DateDoc smalldatetime, " & _
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556498
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поставил smalldatetime. Ничего не изменилось.
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556555
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Проверь, работает ли у тебя мой тест
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556637
marvan
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня с таймером сработало, а без него тоже жаловалась на сортировку - попробуй увеличить время ожидания.
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556651
Фотография ulis
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У меня возникает совершенно аналогичная ошибка. К dbf-нику претензий нет, т.к. я использую готовый. Причину пока так и не выяснил, просто объяснил юзверям, что если ошибка выскочит, то повторите предыдущую операцию
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556695
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Processor

НЕ РАБОТАЕТ!!!
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556700
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2All
Господа, не мучайтесь.
Я поставил Resume и, вроде помогает...

Снимаю вопрос. Спасибо всем за участие!
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32556969
Processor
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Только - не голый Resume:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
ErrorHandler:
    If Err.Number = - 2147467259  Then
        DoEvents
        Err.Clear
        Resume
    Else
        Dim objError As ADODB.Error
        Dim strError As String
    
            If dbfconn.Errors.Count >  0  Then
                For Each objError In dbfconn.Errors
                    strError = strError & "Error #" & objError.Number & _
                        " " & objError.Description & vbCrLf & _
                        "NativeError: " & objError.NativeError & vbCrLf & _
                        "SQLState: " & objError.SQLState & vbCrLf & _
                        "Reported by: " & objError.Source & vbCrLf & _
                        "Help file: " & objError.HelpFile & vbCrLf & _
                        "Help Context ID: " & objError.HelpContext
                Next
                MsgBox strError
            End If
    End If
...
Рейтинг: 0 / 0
Ошибка при работе с ADO
    #32557050
Andy154
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2Processor

Спасибо большое. Так и сделаю.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при работе с ADO
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]