Почему не зупускается sql-скрипт?
Lidiya; 27.3.03
Беру пример:
*********************************
char ExportArchive[256];
char* path="E:\\SIEMENS\\Common\\sqlany\\isql.exe -q -b -c";
char*
parameters="UID=DBA;PWD=SQL;DBF=E:\\Projects\\WinCC\\Demo\\Demo.db";
char* action="read E:\\Projects\\WinCC\\Demo\\SQL\\archiv.sql";
sprintf(ExportArchive,"%s %s %s",path,parameters,action);
ProgramExecute(ExportArchive);
*********************************
содержимое archiv.sql:
SELECT * FROM "DBA"."MCPTVARIABLEDESC";
OUTPUT TO E:\Projects\WinCC\Demo\archive.txt FORMAT ASCII
*********************************
В Runtime при запуске скрипта выдается сообщение: "Specified
database not found".Почему?
Re: Почему не зупускается
sql-скрипт?
Александр Родин, ООО
"Нева Электрик"; 28.3.03
Потому что надо
1. указывать не Demo.DB, а DemoRT.DB;
2. лучше указывать не файловый доступ, а доступ через DSN, т.е.
писать не "DBF=", а "DSN=".
Имя DSN можно посмотреть в настройках ODBC в виндах.
ну и замечание по написанию скриптов: таким способом строки лучше
всего не делать...
лучше делать так:
char* path, parameters, action;
path = (char*) SysMalloc (256);
parameters = (char*) SysMalloc (256);
//... и т.д.
sprintf (path, "<ваша строка>\0");
// и т.д.
так есть больше уверенности, что в этих строчках не будет никакого
мусора.
Re: Почему не зупускается
sql-скрипт?
Lidiya; 28.3.03
А можно таким же способом запускать sql-скрипт, и указывать DSN
любой другой БД, прописанной в ODBC?
Re: Почему не зупускается
sql-скрипт?
Чистяков Дмитрий "СеверСталь"; 28.3.03
Можно. Если конечно имеется её драйвер.
Re: Почему не зупускается
sql-скрипт?
Александр
Шестаков; 27.4.03
1. Что касается исходного примера то, способ определения строковых
массивов не приводит к появлянию мусора, а выделение памяти под
строки через функцию SysMAlloc громоздко и неудобно, помимо того
что необходимо еще осводождать память.
2. Таблица которая приведена в примере (описание тегов) находится в
конфигурационной базе данных, а не в базе данных RunTime.
3. Что касается указания DSN, вместо имени файла, то полностью с
этим согласен. Для автоматического получения DSN для текущего
проекта можно использовать функции работы с базами данных из ODK
(рекомендую).
Re: Почему не зупускается
sql-скрипт?
Lidiya; 14.5.03
Заменила в строке "DBF=" на "DSN=", DSN скопировала из ODBC. Все
равно выдает ошибку "Specified database not found". Почему?
непонятно...
Подскажите пожалуйста, какая функция ODK позволяет автоматически
получать DSN?