Query is too complex (DBF)

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Alex_Skull
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 21.08.2006 (Пн) 7:35

Query is too complex (DBF)

Сообщение Alex_Skull » 21.08.2006 (Пн) 11:24

Есть DBF-файл, структура которого состоит из 119 полей. Он содержит 20 заисей.

Есть код:
Код: Выделить всё
    Dim cnFile As New ADODB.Connection
    Dim rsFile As New ADODB.Recordset
    Dim i As Integer

    cnFile.Open ("CollatingSequence=ASCII;DefaultDir=C:\TEST;Driver={Microsoft dBase Driver (*.dbf)};DriverId=21;Exclusive=1;FIL=dBase III;FILEDSN=;MaxBufferSize=2048;MaxScanRows=8;PageTimeout=5;SafeTransactions=0;Statistics=0;Threads=3;UID=admin;UserCommitSync=Yes;")
    cnFile.CursorLocation = adUseClient
    rsFile.Open "TEST.DBF", cnFile, adOpenForwardOnly, adLockOptimistic

    i = 1000

    Do Until rsFile.EOF
        i = i + 1
        rsFile.Fields(2).Value = i
        rsFile.Update
        rsFile.MoveNext
    Loop


Дык вот при выполнении данного безобразия в строке rsFile.Update вылетает эррор: [Microsoft][ODBC dBase Driver] Query is too complex.

Видимо DBF-ник слишком громоздкий, а этот самый .Update генерит какой-то безумный запрос... Никто не лечил такое?

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 21.08.2006 (Пн) 11:28

adOpenForwardOnly замени на другой курсор adOpenKeyset

Алексей К.
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 419
Зарегистрирован: 12.05.2004 (Ср) 9:41
Откуда: Ульяновск

Сообщение Алексей К. » 21.08.2006 (Пн) 11:37

Такая же хрень была при выполнении сложного запроса, вылечился установкой последних Jet sp8 + MDAC 2.8 sp1

Alex_Skull
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 21.08.2006 (Пн) 7:35

Сообщение Alex_Skull » 21.08.2006 (Пн) 12:52

Konst_One писал(а):adOpenForwardOnly замени на другой курсор adOpenKeyset


Не помогает :(

Алексей К. писал(а):Такая же хрень была при выполнении сложного запроса, вылечился установкой последних Jet sp8 + MDAC 2.8 sp1


Система постоянно обновляется, установлены Jet 4.0 SP3 и MDAC 2.8 SP2.



Видимо придётся SQL-ем самому упдатить...

Alex_Skull
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 21.08.2006 (Пн) 7:35

Сообщение Alex_Skull » 21.08.2006 (Пн) 12:54

Алексей К. Очепяталсо, Jet 4.0 SP8

Konst_One
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
Аватара пользователя
 
Сообщения: 3041
Зарегистрирован: 09.04.2004 (Пт) 13:47
Откуда: Химки

Сообщение Konst_One » 21.08.2006 (Пн) 15:22

тип поля , которое идет третьим по счету в таблице?

HandKot
Бывалый
Бывалый
Аватара пользователя
 
Сообщения: 283
Зарегистрирован: 28.06.2006 (Ср) 13:34
Откуда: Sergiev Posad

Сообщение HandKot » 22.08.2006 (Вт) 10:25

посмотрите здесь

делайте обновление запросами
Код: Выделить всё
strSQL="UPDATE TABLE SET Field3 = ??? WHERE ..."
cnFile.Execute strSQL

Alex_Skull
Начинающий
Начинающий
 
Сообщения: 4
Зарегистрирован: 21.08.2006 (Пн) 7:35

Сообщение Alex_Skull » 23.08.2006 (Ср) 8:24

И незнаю, чего я тупил:

Код: Выделить всё
    sqlFile = "SELECT NUMB_P FROM TEST.DBF"
    rsFile.Open sqlFile, cnFile, adOpenForwardOnly, adLockOptimistic


И всё заработало.
Всем спасибо! :)


Вернуться в Базы данных

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

    TopList