Работаю через ADODB c базой Visual FoxPro.
Один и тот же код:
Dim adoConnect1 As ADODB.Connection
Dim Record1 As ADODB.Recordset
Dim strConnect As String
Set adoConnect1 = New ADODB.Connection
strConnect = "Provider=MSDASQL.1;Persist Security Info=False;Extended Properties=""DSN=MyDSN;UID=;SourceDB=" & MyPath & ";SourceType=DBF;Exclusive=No;BackgroundFetch=Yes;Collate=Machine;Null=Yes;Deleted=Yes;"""
adoConnect1.Open strConnect
Set Record1 = New ADODB.Recordset
Record1.ActiveConnection = adoConnect1
Record1.CursorLocation = adUseClient
Record1.CursorType = adOpenForwardOnly
Record1.Open "SELECT * FROM mytable"
Set Me.DataGrid1.DataSource = Record1
MsgBox Record1.RecordCount ' ТУТ ВЫЛАЗИТ ОШИБКА !
Set Record1 = Nothing
adoConnect1.Close
Set adoConnect1 = Nothing
в 2000-х и 98-х прекрасно работает. В XP ни в какую.
Ругается примерно так:
Иcтoчник : Microsoft Cursor Engine
N : -2147467259
Oпиcaниe : Пocтaвщик дaнныx или дpyгaя cлyжбa вepнyли cocтoяниe E_FAIL.
Спрашивается: чего ему надо?
Заметил только, что данная ошибка обычно вылазит когда значение числового поля в таблице
длиной, например равной 3 фактически имеет эту длину. Если 1 или 2 цифры - все нормально
Ответить
|