![]() |
Как написать SQL-script
То, что было сказано в предыдущей статье об использовании SQL-скриптов, хорошо работает с Interbase v.5x, но для Interbase v.6x/Firebird есть проблемы. В этих версиях нет программы WI_SQL – вместо нее используется программа IBConsole, в которой работа со скриптами не так удобна. С другой стороны – есть программа isql.exe (SQL в командной строке) и есть прием более удобный, о котором дальше пойдет речь.
\Compile\doc\ - для файлов word
\res\ - для файлов-результата работы скрипта
\sql\ - для готовых файлов скриптов
\src\ - для скриптов с расширением .txt без начальных заголовков
Итак, что получается в результате. Ниже приведен пример рабочего bat-файла: del /Q res\*.* isql.exe -m -i sql\AZCreate.txt -o res\AZCreate_r.txt isql.exe -m -i sql\Users.sql -o res\Users_r.txt rem rem VIPerson - FirstName, ..., SurName copy src\hd02.txt+src\FName.txt+src\MName.txt+src\LName.txt+src\SurName.txt+src\PostName.txt sql\XName.sql copy src\hd02.txt+src\VIPerson.txt+src\VIPerson001.txt sql\VIPerson.sql isql.exe -m -i sql\XName.sql -o res\XName_r.txt isql.exe -m -i sql\VIPerson.sql -o res\VIPerson_r.txt rem copy src\hd02.txt+src\GrTitle.txt sql\GrTitle.sql isql.exe -m -i sql\GrTitle.sql -o res\GrTitle_r.txt rem Address copy src\hd02.txt+src\StatList.txt+src\AreaList.txt+src\CityList.txt+src\StreetList.txt src\Adr01.txt copy src\Adr01.txt+src\BildList.txt+src\BlockList.txt+src\OfficeList.txt sql\AddressList.sql del /Q src\Adr01.txt Copy src\hd02.txt+src\Adr_00RusFederation.txt sql\Adr_00RusFederation.sql Copy src\hd02.txt+src\Adr_78SPb.txt+src\Adr_47LenArea.txt sql\Adr_Spb.sql Copy src\hd02.txt+src\Adr_78SPb_Area.txt+src\Adr_78SPB_Gorelovo.txt+src\Adr_78SPB_Kolpino.txt src\Adr_78SPB_Area01.txt Copy src\Adr_78SPB_Area01.txt+src\Adr_78SPB_KrasnoeSelo.txt+src\Adr_78SPb_Kronstadt.txt src\Adr_78SPB_Area02.txt Copy src\Adr_78SPB_Area02.txt+src\Adr_78SPb_LisiNos.txt+src\Adr_78SPb_Lomonosov.txt src\Adr_78SPB_Area03.txt Copy src\Adr_78SPB_Area03.txt+src\Adr_78SPb_Olgino.txt+src\Adr_78SPb_Pavlovsk.txt src\Adr_78SPB_Area04.txt Copy src\Adr_78SPB_Area04.txt+src\Adr_78SPb_Petergof.txt+src\Adr_78SPb_PetroSlavjanka.txt src\Adr_78SPB_Area05.txt Copy src\Adr_78SPB_Area05.txt+src\Adr_78SPb_Pontonniy.txt+src\Adr_78SPb_Pushkin.txt src\Adr_78SPB_Area06.txt Copy src\Adr_78SPB_Area06.txt+src\Adr_78SPb_Sestroreck.txt+src\Adr_78SPb_Zelenogorsk.txt src\Adr_78SPB_Area07.txt Copy src\Adr_78SPB_Area07.txt+src\Adr_78SPb_Pavlovsk.txt+src\Adr_78SPb_Shushary.txt sql\Adr_78SPb_Area.sql del \Q src\Adr_78SPB_Area01.txt del \Q src\Adr_78SPB_Area02.txt del \Q src\Adr_78SPB_Area03.txt del \Q src\Adr_78SPB_Area04.txt del \Q src\Adr_78SPB_Area05.txt del \Q src\Adr_78SPB_Area06.txt del \Q src\Adr_78SPB_Area07.txt rem isql.exe -m -i sql\AddressList.sql -o res\AddressList_r.txt isql.exe -m -i sql\Adr_00RusFederation.sql -o res\Adr_00RusFederation_r.txt isql.exe -m -i sql\Adr_Spb.sql -o res\Adr_Spb_r.txt isql.exe -m -i sql\Adr_78Spb_Area.sql -o res\Adr_78Spb_Area_r.txt rem Copy src\hd02.txt+src\PhoneList.txt+src\PhoneLst001.txt sql\PhoneList.sql isql.exe -m -i sql\PhoneList.sql -o res\PhoneList_r.txt Copy src\hd02.txt+src\Partners.txt+src\Partners001.txt sql\Partners.sql isql.exe -m -i sql\Partners.sql -o res\Partners_r.txt Copy src\hd02.txt+src\CallBase001.txt sql\CallBase.sql isql.exe -m -i sql\CallBase.sql -o res\CallBase_r.txt
Подробнее:
SET ECHO ON;
SET NAMES WIN1251;
SET TIME ON;
SET STATS OFF;
SET AUTODDL ON;
SET SQL DIALECT 3;
CREATE DATABASE 'azsrv2k.rt-press.ru:D:\Firms\AZBaseV2.gdb'
USER 'SYSDBA' PASSWORD 'masterkey'
PAGE_SIZE=8192 DEFAULT character set win1251
FILE 'D:\Firms\AZBaseV2.g01' starting at page 250001 length 250000 pages
FILE 'D:\Firms\AZBaseV2.g02' starting at page 500001 length 250000 pages;
COMMIT;
copy src\hd02.txt+src\VIPerson.txt+src\VIPerson001.txt sql\VIPerson.sql
isql.exe -m -i sql\VIPerson.sql -o res\VIPerson_r.txt
© 17.01.2003, Архангельский А.Г. | |||
|
|