MS Access ошибка при выполнении запроса

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Penumbra
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 24.01.2009 (Сб) 13:36

MS Access ошибка при выполнении запроса

Сообщение Penumbra » 04.04.2012 (Ср) 2:36

есть база MS Access, работаю с ней из под VB6 при выполнении запросов
Код: Выделить всё
    str = "  delete * FROM EditP"
    rs.Open str, con, adOpenStatic, adLockOptimistic
    str = " INSERT INTO EditP SELECT * FROM  tmpEditP"
    rs.Open str, con, adOpenStatic, adLockOptimistic
    str = "   DROP TABLE  tmpEditP"
    rs.Open str, con, adOpenStatic, adLockOptimistic

происходит повреждение данных таблицы (см вложение), иногда происходит повреждение самой БД
в чем проблема может быть?
структура таблицы tmpEditP идентична EditP
У вас нет доступа для просмотра вложений в этом сообщении.

VBTerminator
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 415
Зарегистрирован: 19.11.2008 (Ср) 20:10

Re: MS Access ошибка при выполнении запроса

Сообщение VBTerminator » 04.04.2012 (Ср) 18:31

Попробуй после каждого rs.Open выполнять rs.Close.

Penumbra
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 24.01.2009 (Сб) 13:36

Re: MS Access ошибка при выполнении запроса

Сообщение Penumbra » 04.04.2012 (Ср) 20:50

не, не помагает,

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

Re: MS Access ошибка при выполнении запроса

Сообщение HandKot » 05.04.2012 (Чт) 7:17

а может вместо
Код: Выделить всё
rs.Open str, con, adOpenStatic, adLockOptimistic


использовать
Код: Выделить всё
con.Execute str


Вы же не выбираете данные. а управляете ими и рекордсет не нужен в данном случае
I Have Nine Lives You Have One Only
THINK!

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: MS Access ошибка при выполнении запроса

Сообщение alibek » 07.04.2012 (Сб) 11:14

Собственно, во всех трех случаях лучше использовать .Execute.
Lasciate ogni speranza, voi ch'entrate.

Penumbra
Обычный пользователь
Обычный пользователь
 
Сообщения: 62
Зарегистрирован: 24.01.2009 (Сб) 13:36

Re: MS Access ошибка при выполнении запроса

Сообщение Penumbra » 07.04.2012 (Сб) 12:29

Код: Выделить всё
       str = "  delete * FROM EditP"
        con.Execute str
     
        str = " INSERT INTO EditP SELECT * FROM  tmpEditP"
        con.Execute str

вызывает туже ошибку

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

Re: MS Access ошибка при выполнении запроса

Сообщение HandKot » 09.04.2012 (Пн) 7:13

ну тогда осталось 2 варианта:
1. В tmpEditP уже плохие данные
2. В запросах на втсавку перечислите все поля (insert into table1(filed1, field2,...) select field1, field2, ... from table2), несоотвтествие полей и/или их порядок тоже может вызвать неадекватное поведение
I Have Nine Lives You Have One Only
THINK!


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

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

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

    TopList