Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.04.07;
Скачать: [xml.tar.bz2];

Вниз

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

 
Денис   (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;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.46 MB
Время: 0.009 c
3-19415
Дмитрий В.Г.
2003-03-18 08:51
2003.04.07
Помогите составить SQL запрос


8-19699
nomshar
2002-12-31 01:24
2003.04.07
Масштабирование изображений


7-19906
Alexandr3
2003-02-11 17:39
2003.04.07
Кто работал с Epson Opos помогите...


14-19848
Я
2003-03-21 10:00
2003.04.07
Программирование


6-19721
still
2003-02-04 16:04
2003.04.07
Получить список комппьютеров





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский