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

Вниз

ADO и EInvalidOp , в чем связь???   Найти похожие ветки 

 
Hyzhak   (2003-12-24 19:33) [0]

Странное дело. Ситуация такая, может кто сталкивался и подскажет в чем может проблема:

Использую TADOQuery компоненты завязанные через TADOConnection. Которые подключены к mdb таблицам.
Формирую запросы, открываю из. Совершаю пару действий, необходимых чтоб вставлять полученные данные. И выкладываю данные. У меня все работает нормально, да и на многих машинах пашет, даже там где не проинталена оболочка. Но есть др. машины с теме же вроде программами, абсолютно идентичными системами. Так вот в них глюк:

float-point operation которую если перехватывать получаем сообщение EinvalidOp, порой даже просто синий экран.

И что интересно, если выводить данные из Query просто использую DBGrid нет проблем, а если же читать данные (абсолютно любыми способами – exception !!)

Подскажите в чем может быть загвоздка, что делать?


 
Yurock   (2003-12-24 19:45) [1]

Может, все-таки (не смотря на "абсолютно идентичные системы"), где-то версия ADO старая и не поддерживает новый формат mdb (он изменился с 2000г)?


 
Hyzhak   (2003-12-24 20:03) [2]

Нет, проблема к сожалению явно не в этом, у меня более старая версия, но даже на др. машине, где находися более новый драйвер Access (идентичный тожу же который глючит, по крайней мере по номеру версии 4.00.6200.00) все идет без запинки.


 
sniknik   (2003-12-24 20:24) [3]

в настройках системы, посмотри и сравни "разделитель целой и дробной частей числа"

это в панели управления - язык и стандарты.


 
Hyzhak   (2003-12-24 20:27) [4]

везде ",". Но я думаю дело даже не в это я пытаюсь вытаскивать строковое поле при помощи свойства Value.


 
Yurock   (2003-12-24 20:39) [5]

Можешь привести фрагмент кода, где падает?


 
Hyzhak   (2003-12-24 20:49) [6]

кратко следующее :

//подключение файла
ADOConnectionMVV->Connected = false;
ADOConnectionMVV->ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source="+m_strMainDataDir+"MVV.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=4;Jet OLEDB:Database Locking Mode=0;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don"t Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False";
ADOConnectionMVV->Connected = true;

//query уже ссылается на connection
ADOQuerySubObjectsMVV->Close();
ADOQuerySubObjectsMVV->SQL->Clear();
ADOQuerySubObjectsMVV->SQL->Add("SELECT Enter_ShortName, ShortName, EDRPOY, R_num, Date_reg ");
ADOQuerySubObjectsMVV->SQL->Add("FROM Total_MVV Source");
ADOQuerySubObjectsMVV->Open();

//если сразу же читать значения полей (мы их получаем без проблем) .
//но я предварительно подготавливаю TreeView на что уходит немного времени.
//обращений к таблицам и Query не проиходит
//...
while(!ADOQuerySubObjectsMVV->Eof){
//здесь происходит глюк ->
AnsiString str = ADOQuerySubObjectsMVV->Fields->FieldByName("Enter_ShortName")->AsString;

//.....

ADOQuerySubObjectsMVV->Next();
}


 
Yurock   (2003-12-24 21:13) [7]

Скорее всего, надо еще при открытии явно указывать кодовую страницу (что-то типа LANGDRIVER в BDE)


 
sniknik   (2003-12-25 00:39) [8]

а столько параметров в строке действительно необходимо?
часто достаточно
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\Base.MDB;Persist Security Info=False

> Engine Type=4
это офис 97
у тебя какая версия базы?

и версия дельфей не 5?

что будет если
вместо
> //но я предварительно подготавливаю TreeView на что уходит немного времени.
поставить sleep?


 
Hyzhak   (2003-12-25 20:43) [9]

не совсем понял ка это можно сделать в ADO:

>Скорее всего, надо еще при открытии явно указывать кодовую >страницу (что-то типа LANGDRIVER в BDE)

Я вообщето в Builder-е 5 пишу (необходимое условие :( ) Но думаю большой разницы нет все равно в Dephi ресурсы теже.

Разумное сокращение параметров не принесло ни какого эффекта. Чтож и это приятно. )

Странный фокус получает в том, что я вызываю ф-ию кот. формирует запрос и запускает его, после основная ф-ия пытается уже работать с результатами запроса. Так вот в теле функции читать значения полей получается без проблем, а вне – глюк.

И еще одна странность: если поле было прочитано внутри ф-ии (формирующей запрос), то внешняя его тоже может читать. Но другие поля все равно при чтении invalid float-point operation.

Паузы в теле ф-ии формирующей запрос (sleep) не дали ни каких результатов, поля все равно доступны, а вне также глючат.


 
sniknik   (2003-12-25 21:05) [10]

> Паузы в теле ф-ии формирующей запрос (sleep) не дали ни каких результатов, поля все равно доступны, а вне также глючат.
при чем здесь паузы в теле функции?

я имел ввиду вместо

> //если сразу же читать значения полей (мы их получаем без проблем) .
ведь без проблем если сразу
> //но я предварительно подготавливаю TreeView на что уходит немного времени.
вот этот код на слип и замени чтобы пауза такая была а кода не было
> //обращений к таблицам и Query не проиходит
не одними обращениями можно код/данные попортить (а если ты туда по ссылке/указателю залазиш?)

sniknik © (25.12.03 00:39) [8]
> у тебя какая версия базы?
всетаки хотелось бы знать, в 97м бывают глюки. переведи на 2000й.

> И еще одна странность: если поле было прочитано внутри ф-ии (формирующей запрос), то внешняя его тоже может читать. Но другие поля все равно при чтении invalid float-point operation.
то есть в какихто местах читает работает в других нет? тогда не трать время на настройки системы, формат базы, ... т.д. иши глюки в программе.


 
Hyzhak   (2003-12-26 16:11) [11]

Друзья извините, я просто глупо притупил. Грешил на ADO ), а на самом деле забыл вернуть значение из ф-ии. Похоже глюк у меня в башке )



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

Форум: "Базы";
Текущий архив: 2004.01.23;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.47 MB
Время: 0.008 c
11-72697
Boguslaw
2003-05-07 22:57
2004.01.23
How to implement smooth scrolling in TKOLMemo ?


11-72695
LedWorm
2003-05-09 07:56
2004.01.23
Использование KOLgif без установки KOLа


1-72772
msgipss
2004-01-14 12:23
2004.01.23
Как будет вести себя объект при удалении


14-72926
Рулон Обоев
2004-01-01 15:29
2004.01.23
Идея =)


4-72990
Владимир
2003-11-13 09:35
2004.01.23
Непрямоугольные компоненты





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский