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

Вниз

Ошибка при запросе SELECT в ADODataSet   Найти похожие ветки 

 
FunkyByte ©   (2006-01-24 07:53) [0]

Доброго времени суток, уважаемые мастера. Пытаюсь выполнить простейший запрос на выборку в ADODataSet:

...
ADODataSet1.ConnectionString:="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\;Extended Properties=dBase IV;Persist Security Info=False";
ADODataSet1.Close;
ADODataSet1.CommandText:="SELECT MAX(Counter) as CurCounter FROM RegLog";
ADODataSet1.Open; //тут возникает ошибка...

...со следующим текстом "Непредвиденная ошибка драйвера внешней базы данных (8961)"
Пробовал подключить через ODBC:

...
ADODataSet1.ConnectionString:="Provider=MSDASQL.1;Persist Security Info=False;Data Source=Visual FoxPro Tables;Mode=ReadWrite;Initial Catalog=C:\";
ADODataSet1.Close;
ADODataSet1.CommandText:="SELECT MAX(Counter) as CurCounter FROM RegLog";
ADODataSet1.Open;

На том же месте возникает ошибка с текстом "[Microsoft][ODBC Visual FoxPro Driver]Unrecognized command verb".
В чём причина ошибки? Что не так? И как с этим бороться? Заранее благодарен.


 
Janbolat ©   (2006-01-24 08:20) [1]

a zachem cherez ADo mojno je ved" i BDE ispolzovat"


 
sniknik ©   (2006-01-24 08:52) [2]

не используй ConnectionString, используй Connection (с доп. компонентом ADOConnection) это правильнее.

по ошибке - Counter зарезервированое слово jet-а ... если нет возможности сменить имя поля то используй в кавычках [Counter]

если не поможет просмотри все значения поля (любым редактором dbf который cможет открыть), есть движки (только для dbf) которые на переполнение значения числового (при вставке/апдейте ) поля пишут в него ехпонинциальное значение (123E+15), или (другие) строковое ####. и то и другое с точки зрения jet строки в числовом поле, не распознается и необрабатывается (т.е. считай база порушена).


 
FunkyByte ©   (2006-01-24 08:53) [3]

Надо именно через ADO


 
Anatoly Podgoretsky ©   (2006-01-24 09:14) [4]

sniknik ©   (24.01.06 08:52) [2]
Это и есть порушеная база.


 
Anatoly Podgoretsky ©   (2006-01-24 09:15) [5]

FunkyByte ©   (24.01.06 08:53) [3]
Почему, ведь в конечном случае работа все равно идет черех БДЕ, только посредников побольше, особенно для ODBC


 
FunkyByte ©   (2006-01-24 09:18) [6]

2 sniknik
Попробовал взять имя поля в кавычки - ошибка никуда не делась. Попробовал сменить имя поля на rec_num - та же трабла. Соединил через ADOConnection (а вдруг поможет) - не помогло. В таблице единственная запись, и в ней это поле имеет значение 0 (поле целочисленное, Numeric в терминологии FoxPro), так что с переполнением проблем быть не должно.


 
FunkyByte ©   (2006-01-24 09:23) [7]

2 Anatoly Podgoretsky
Насколько я понимаю, ADO и BDE - 2 большие разницы и друг от друга вообще никак не зависят. Поправьте, если я не прав.


 
sniknik ©   (2006-01-24 11:06) [8]

> sniknik ©   (24.01.06 08:52) [2]
> Это и есть порушеная база.
те движки, что так пишут продолжают с ней работать как ни в чем не бывало, и так не считают. ;)

но вообше согласен. строка в числовом поле "Это и есть порушеная база".

> так что с переполнением проблем быть не должно.
откуда взята таблица? вот в чем смысл, например если поле определено как Numeric(3, 0) а записано значение к примеру 1000 (больше 3 символов) то "честные" движки выдадут ошибку переполнения... а есть другие "нечестные" которые ничего не выдадут а запишут "1Е3" в строке или "###" (обманут тебя фактически). сами будут после работать с ошибочными данными (округленными и 0-м вместо числа), а любой другой движок будет считать базу порушеной. о чем и спич.  

> ADO и BDE - 2 большие разницы и друг от друга вообще никак не зависят.
разница конечно, но провайдеры ADO (OLEDB) вполне могут использовать BDE (что и делают)


 
FunkyByte ©   (2006-01-24 14:46) [9]

2 sniknik
Таблицу слепил сам. Сам же записал туда единственную запись (через Fox) для тестового прогона с 0 в вышеозначенное поле (к слову, формат поля Numeric(7,0)). Так что база не порушена. Проблема не в этом.


 
sniknik ©   (2006-01-24 15:42) [10]

> (через Fox)
версия? если вижуал (и вообще более менее новый) то jet не возьмет, он толи до 2,5 толи до 2,6 всерсии фокса (дос) открывает. новые форматы фокса не понимает.

тогда только Visual FoxPro Tables остается. пробуй им.


 
FunkyByte ©   (2006-01-24 21:43) [11]


> если вижуал (и вообще более менее новый) то jet не возьмет

Вот сопсно и выявилась причина ошибки.

> тогда только Visual FoxPro Tables остается. пробуй им.

Пробовал. Там другая ошибка: "[Microsoft][ODBC Visual FoxPro Driver]Unrecognized command verb". Я об этом писал в самом вопросе. Там же написан ConnectionString, который я использовал. Ошибка при подключении через ODBC не зависит от имени поля и наличия ADOConnection - проверял. Что интересно, при подключении таблицы через Jet запрос INSERT работает нормально, а при подключении через ODBC не работает и он.


 
sniknik ©   (2006-01-24 22:00) [12]

> Unrecognized command verb
неправильная команда или опять зарезервированое слово... (чегото не распознает)

> Там же написан ConnectionString, который я использовал.
твой ConnectionString у меня не проходит (каталога базы нет, а начальный это немного не то, таблици без указания полного пути находить не будет)
попробуй этот
Provider=MSDASQL.1;Persist Security Info=False;Mode=ReadWrite;Extended Properties="DSN=Visual FoxPro Tables;UID=;SourceDB=C:\;SourceType=DBF;Exclusive=No;BackgroundFetch=No;Collate=Machine;Null=Yes;Deleted=No;"



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

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

Наверх




Память: 0.48 MB
Время: 0.014 c
15-1141075073
Grief
2006-02-28 00:17
2006.03.19
Оригинально!


4-1135613573
oleggar
2005-12-26 19:12
2006.03.19
кто изменил файл ?


15-1140809079
DillerXX
2006-02-24 22:24
2006.03.19
Генетические алгоритмы, нейронные сети...


3-1138286835
VitV
2006-01-26 17:47
2006.03.19
Access+Delphi


4-1133446523
lucifer
2005-12-01 17:15
2006.03.19
как получить хэндл окна, находящегося под курсором мыши?





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