Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.10.2010, 01:40   #1
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию ADO+Paradox - прога запускается только из среды Delphi

Некая БД была давным-давно написана в Delphi с использованием BDE и таблиц Paradox.
За сегодня переделал её под ADO (в смысле - таблицы остались прежними, поменял BDE на ADO).
ADOConnection для связи с таблицами БД использует udl-файл с текстом:
Цитата:
[oledb]
; Everything after this line is an OLE DB initstring
Provider=Microsoft.Jet.OLEDB.4.0;Da ta Source=d:\DataBases\Lic_ado\Data\;E xtended Properties=Paradox 7.x; Mode=Read|Write|Share Deny None;Persist Security Info=True
ADOTable не использую вообще, только ADOQuery.

Суть вопроса вот в чём: программа компилируется в Delphi, всё ок.
Запускаем exe-файл - вылетает ошибка "Недопустимая операция".
Ладно, иду в Delphi и запускаю пошагово - ошибки нету. Запускаю из Delphi не пошагово, а просто Run Project - ошибки нету!! Запускаю exe-файл - ошибка. ЧТО ЭТО??!!

ЗЫ: ещё есть один вопрос, не относящийся к вопросу по теме, но в отношении этой же базы
Есть вот такой запрос:
Цитата:
select * from enterprs
where Id in (select Ent_Id from licenze where State=0 and DateLicenz<='19.10.2010' and DateClose>='19.10.2010')
Программа ругается: "Несоответствие типов данных в выражении условия отбора".
Отмечу, что в BDE такой запрос обрабатывался на ура. Что надо изменить в запросе, используя ADO?
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Старый 20.10.2010, 02:44   #2
Sparkman
220400
Форумчанин
 
Аватар для Sparkman
 
Регистрация: 21.05.2010
Сообщений: 726
По умолчанию

Цитата:
ЗЫ: ещё есть один вопрос, не относящийся к вопросу по теме, но в отношении этой же базы
Есть вот такой запрос:
нужно дату привести к формату БД
Cерьёзной помощи не ждите - помогаю в перерывах на "перекур".
Не существует ничего невозможного для человека, который не собирается ничего делать сам.
Не учите человека, если вы не его учитель.
Sparkman вне форума Ответить с цитированием
Старый 20.10.2010, 06:43   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от Sparkman
нужно дату привести к формату БД
угу. можно и так.
Но намного лучше заменить этот (и подобные запросы) на запрос с параметрами (на форуме найдёт легко. примеров было десятки).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 21.10.2010, 01:05   #4
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

За ответы на вопрос с датой - спасибо
Но это как бы дополнительный вопрос был...

Меня больше волнует основной - почему прога запускается только в среде Delphi?

Кстати, попробовал с параметром.
Для ADOQuery создал параметр 'D' , для которого указал:
DataType=ftDateTime
Value.Type=Date

Далее изменил код.
Код:
ADOQuery.SQL.Add('select * from enterprs where Id in (select EnterpriseId from licenze where State=0 and DateLicenz<=:D and DateClose>=:D)');
ADOQuery.Parameters.ParamByName('D').Value:=Date;
ADOQuery.Open;
Получаем ошибку:
Цитата:
ADOQuery: Parameter 'D' not found.
По соотношению цена-качество, халявное пиво не имеет конкурентов.

Последний раз редактировалось Stilet; 21.10.2010 в 15:11.
palevg вне форума Ответить с цитированием
Старый 21.10.2010, 14:43   #5
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от palevg Посмотреть сообщение
За ответы на вопрос с датой - спасибо
Но это как бы дополнительный вопрос был...

Меня больше волнует основной - почему прога запускается только в среде Delphi?
Видимо потому, что сам Paradox работает только под BDE...
mihali4 вне форума Ответить с цитированием
Старый 21.10.2010, 15:13   #6
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
Видимо потому, что сам Paradox работает только под BDE...
Ну вообще-то есть среди ADO ODBC провайдер под Paradox...
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 21.10.2010, 15:19   #7
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Ну вообще-то есть среди ADO ODBC провайдер под Paradox...
Если он присутствует в системе...
mihali4 вне форума Ответить с цитированием
Старый 24.10.2010, 01:17   #8
palevg
Пользователь
 
Аватар для palevg
 
Регистрация: 03.10.2010
Сообщений: 77
По умолчанию

Ищется нужный провайдер
Название? Как проверить наличие в системе?
Если его нету - как установить?
По соотношению цена-качество, халявное пиво не имеет конкурентов.
palevg вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Не запускается прога на другом компе ahvahsky2008 БД в Delphi 11 06.05.2010 10:12
Как через Ado подключить БД Paradox CheGu Помощь студентам 0 05.05.2010 19:37
не запускается прога с другого компа kate158 Общие вопросы Delphi 16 07.08.2009 09:01
Связь двух талиц Paradox с помощью ADO SlavaSH БД в Delphi 4 29.06.2009 12:21
Не запускается прога Байт Общие вопросы C/C++ 4 23.12.2008 22:54