Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Ошибка при работе с ADO / 17 сообщений из 17, страница 1 из 1
10.06.2004, 11:14
    #32555786
Andy154
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при работе с ADO
Всем здравствуйте!

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Снимаю вопрос. Спасибо всем за участие!
...
Рейтинг: 0 / 0
10.06.2004, 18:31
    #32556969
Processor
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при работе с ADO
Только - не голый 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
10.06.2004, 19:09
    #32557050
Andy154
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ошибка при работе с ADO
2Processor

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


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