Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.04.07;
Скачать: CL | DM;

Вниз

Ошибка   Найти похожие ветки 

 
Денис   (2003-03-18 10:54) [0]

Ситуация. Есть прога, работающая с Microsoft.Jet.OLEDB.4.0 через ADO, база MS Access. При первом выполнении любого(!!!) запроса все проходит так, как и должно, а вот при втором выполнении видим исключение EOleException "Несоответствие типов данных в выражении условия отбора". Причем такая ситуация возникает для ЛЮБОГО запроса, вызванного вторично, запросы организованы в TADOQuery. В чем проблема? Спасибо.


 
stone ©   (2003-03-18 10:59) [1]

Телепатически диагноз установить довольно трудно. Если нет логических ошибок в запросе, то попробуй включить/выключить Prepared


 
sniknik ©   (2003-03-18 11:04) [2]

В чем проблема?
как и всегда, в 17-й строке.

как предположение запросы заносиш через ADD, предварительно не очистив то что там было.


 
Денис   (2003-03-18 11:18) [3]

Час назад все работало через ODBC, решил отказаться от нее, там замудрено с ConnectionString, т.е. нужно прописывать алиас вручную, а я хотел сделать так, чтобы прога сама определяла, где она находится и исходя из этого коннектилась к базе, которая лежит в том же каталоге, что и прога.


 
Денис   (2003-03-18 11:20) [4]

т.е. вот так:

path := ExtractFilePath(ParamStr(0));
ADOConnection1.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + path + "mybase.mdb;Persist Security Info=False";


 
stone ©   (2003-03-18 11:25) [5]


> где она находится и исходя из этого коннектилась к базе,
> которая лежит в том же каталоге, что и прога.

Насколько я помню в этом случае путь вообще не надо указывать

Типа того:
ADOConnection1.ConnectionString := "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=mybase.mdb;Persist Security Info=False";


 
Денис   (2003-03-18 11:44) [6]

stone, спасибо, но не в этом суть. Все равно ведь "Несоответствие типов данных...". Как быть-то?


 
sniknik ©   (2003-03-18 11:50) [7]

stone © (18.03.03 11:25)
лутше все же явно указать, на случай если запуск не из текущего каталога.

Денис (18.03.03 11:20)
никакого криминала в предложеном коде нет (кроме может вероятного сбоя в некоторых виндах, ExtractFilePath(ParamStr(0)) в некоторых возвращает путь не завершающийся "\", я обычно добавляю на это проверку (в основном потому что не выяснил точно где это происходит и почему, а нужно чтобы не зависело))

гдето в другом месте глюк.

положи гденибудь под кнопку подобный код
ADODataSet1.Close;
ADODataSet1.CommandText:= "select * from anytable";
ADODataSet1.Open;
ADODataSet1.Close;
ADODataSet1.CommandText:= "select * from another";
ADODataSet1.Open;

даю 99% гарантии что ошибки на 2-е открытие не будет.


 
Денис   (2003-03-18 11:55) [8]

sniknik. Попробовал, на select не ругается. Ошибка возникает только при update или insert (delete не проверял).


 
Johnmen ©   (2003-03-18 12:02) [9]

Продолжение теста на телепатические способности.............
Я не прошел :(


 
Денис   (2003-03-18 12:10) [10]

Johnmen. Очень сложно иногда бывает предсказать встречные вопросы и написать на них ответы.

stone! Поменял у всех запросов Prepared с False на True - и заработало, спасибо. Может мне кто-нибудь объяснить, как связано Prepared с этой ошибкой? :)


 
sniknik ©   (2003-03-18 12:10) [11]

ну так приведи то на что ругается и как ругается, воспроизведи ситуацию.
см. stone © (18.03.03 10:59)

а то пока мы только гаданиями занимаемся.



Страницы: 1 вся ветка

Текущий архив: 2003.04.07;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.013 c
1-19658
msoftware
2003-03-26 05:16
2003.04.07
Как JPEG картинку загрузить в TImage?


7-19880
alexsandri
2002-12-20 17:31
2003.04.07
Возможно полные бредни ,но все же


4-19920
xZero
2003-02-09 00:15
2003.04.07
PE


6-19740
Translator
2003-02-13 16:39
2003.04.07
Сведения из Internet


1-19532
Nekto
2003-03-26 14:42
2003.04.07
Export from Word/Excel