Форум: "Начинающим";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
ВнизКак отключить загрузку ODBC-драйвера? Найти похожие ветки
← →
cvg (2008-11-27 11:55) [0]Ситуация такая: на одном компе программа может работать в двух режимах -- боевом и тестовом. Для боевого данные берутся из базы MySQL, для тестового -- из текстового файла. На соседнем компе хочу иметь возможность запускать эту же программу, но только в тестовом режиме, она же пытается прицепиться к БД через ODBC, а поскольку их там никогда и не стояло, отзывается матом. В частности, говорит, что-де не может загрузить файл libmysql.dll, хотя я запихнул его и в текущий директрий, и в системную папку, и в c:\util... Вопрос: как сделсть так, чтобы если ODBC нет, то она бы и не пыталась его грузить? Подвопрос: почему она не может-таки найти libmysql.dll?
← →
Поросенок Винни-Пух © (2008-11-27 12:17) [1]myproga.exe -m combat
myproga.exe -m test
if <combat> then
...
else
....
← →
Ega23 © (2008-11-27 12:19) [2]
> Вопрос: как сделсть так, чтобы если ODBC нет, то она бы
> и не пыталась его грузить?
Писать нормальные программы, которые устанавливают коннект по факту, а не на MainForm.Create
> Подвопрос: почему она не может-таки найти libmysql.dll?
А ты уверен, что достаточно её по пути положить? Я - нет. С ней не работал, но вполне возможно, что регистрировать надо через regsvr32, или ещё чё-нить в реестре прописывать.
← →
clickmaker © (2008-11-27 12:28) [3]да это известная проблема с libmysql - какой-то косяк с версиями
нормально пофиксили вроде только в Д2007
← →
cvg (2008-11-27 13:34) [4]To Ega32: А вот бы еще узнать, где именно она устанавливает коннект... В MainFormUnit в uses перечислены: ... DBXpress, DB, SqlExpr, DBTables. В этом что ли дело?
← →
sniknik © (2008-11-27 13:43) [5]> где именно она устанавливает коннект...
а ты разве не знаешь? твоя программа. где первый Open/ExecSql сделан? небось в дизайне уже имеются открытые запросы.
> да это известная проблема с libmysql - какой-то косяк с версиями
> нормально пофиксили вроде только в Д2007
точно? т.е. независимо от нужности само делает коннект?
тогда вынести все в датамодуль, и создавать его самому ->
> myproga.exe -m combat
> myproga.exe -m test
> if <combat> then
Application.CreateForm(TDataModule, DataModule1);
> ...
> else
← →
clickmaker © (2008-11-27 14:01) [6]> точно? т.е. независимо от нужности само делает коннект?
да нет... не загружается, куда его ни клади
слышал про такой косяк в соответствии версии dbexpress и этой dll. возможно, и с odbc что-то подобное
← →
Ega23 © (2008-11-27 14:26) [7]
> А вот бы еще узнать, где именно она устанавливает коннект.
Программа твоя или нет? Если нет - то без исходников узнать будет сложно.
Если твоя - то для начала отказаться от открытия любых запросов в дизайн-тайм. Как привыкнешь и поймёшь как это работает - начинать уже по-нормальному пользоваться.
← →
cvg (2008-11-27 15:06) [8]Программа моя. Закомментарил все вызовы функций, обращающихся к MySQL, в результате вторая машина выполняет программу в тестовом режиме нормально. Насколько понимаю, можно использовать вариант, когда в тестовом режиме на второй машине она запускается с параметром (на основоной машине я обычно запускаю ее в отладчике). Вот только не понял, что такое "-m" в [5]...
← →
sniknik © (2008-11-27 15:15) [9]> Вот только не понял, что такое "-m" в [5]...
то же самое что в [1], в [5] это вообще то комментарий оттуда, с добавлением одной строки которая показывает как можно было бы сделать.
← →
cvg (2008-11-27 15:27) [10]Ну я понял, что оттуда... Просто что это за опция? Или где прочитать ее описание?
← →
Ega23 © (2008-11-27 15:56) [11]
> Просто что это за опция?
Это не опция, это так называемый параметр. Почитать про это можно в справке по ParamCount и ParamStr.
А как пример - ну, например, вызов архиватора из командной строки:zip /p /o /a d:\ttt e:\ttt.zip /s1
(писал от балды)
← →
cvg (2008-11-27 16:11) [12]Прочитал про обе функции. Так и не понял, почему нельзя вызывать сразу в виде "myproga.exe myparam"
← →
Amoeba © (2008-11-27 16:14) [13]
> cvg (27.11.08 16:11) [12]
>
> Прочитал про обе функции. Так и не понял, почему нельзя
> вызывать сразу в виде "myproga.exe myparam"
>
Почему нельзя? Можно, и в рассматриваемом случае достаточно.
← →
Ega23 © (2008-11-27 16:15) [14]
> Так и не понял, почему нельзя вызывать сразу в виде "myproga.
> exe myparam"
Почему нельзя? Можно.if ParamCount>1 then
begin
if UpperCase(ParamStr(1))="COMBAT" then Включаем боевой режим;
if UpperCase(ParamStr(1))="TEST" then Иключаем тестовый режим;
end;
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2009.01.11;
Скачать: [xml.tar.bz2];
Память: 0.48 MB
Время: 0.009 c