function BOOL ExecuteSQLScript(szFile, sServerName, sDBName, sDriver, bTrustedConn, sUserName, sUserPwd, bLog)
OBJECT objConn, objRST, pADORecordSetObj, adoCommand;
STRING sConnString, szADOConnObjID, szADORecordSetObjID;
BOOL bReturn, bOpenCon;
LIST ListaSQL;
INT i;
STRING szLine, szSQL;
begin
bReturn = TRUE;
bOpenCon = FALSE;
// Create the connectionstring
if (sDriver == "") then sConnString = "Provider=sqloledb;";
else sConnString = "Driver={" + sDriver + "};";
endif;
if (bTrustedConn) then //ACA_Log_AppendLine(" using Windows Authentication");
sConnString = sConnString + "server=" + sServerName + ";";
sConnString = sConnString + "database=" + sDBName + ";";
sConnString = sConnString + "Trusted_connection=Yes";
else //ACA_Log_AppendLine(" using SQL Login");
sConnString = sConnString + "server=" + sServerName + ";";
sConnString = sConnString + "uid=" + sUserName + ";";
sConnString = sConnString + "pwd=" + sUserPwd + ";";
sConnString = sConnString + "database=" + sDBName;
endif;
try
szADOConnObjID = "ADODB.Connection";
set objConn = CreateObject(szADOConnObjID);
if (IsObject(objConn)) then
objConn.ConnectionString = sConnString;
objConn.Open;
bOpenCon = TRUE; //Połączono
else
if (bLog) then WriteLog(1,"Nie moża utworzyć obiektu połączenia ADODB.Connection do "+sDBName); endif;
endif;
catch
bOpenCon = FALSE;
bReturn = FALSE;
if (bLog) then WriteLog(1,"Nie uzyskano połączenia z bazą "+sDBName); endif;
endcatch;
if (bOpenCon) then //Jezeli połączono to odczytaj plik i wykonaj skrypty
szSQL = "";
ListaSQL = ListCreate(STRINGLIST);
if Is(FILE_EXISTS,szFile) then
ListReadFromFile(ListaSQL,szFile); //Odczytanie pliku do listy
ListSetIndex(ListaSQL,LISTFIRST);
for i = 0 to ListCount(ListaSQL)-1
ListCurrentString(ListaSQL, szLine); //linia po linii
if StrLength(szLine)>0 then
if (StrLength(szLine)=2)&&(StrFind(szLine,"GO")>=0) then
//Wykonanie skryptu
try
set objRST = objConn.Execute(szSQL);
if (bLog) then
WriteLog(1,"- SQL: \""+szSQL+"\"");
endif;
catch
if (bLog) then
WriteLog(1,"- Błąd wykonania SQL: ");
WriteLog(2,"\""+szSQL+"\"");
endif;
bReturn = FALSE;
endcatch;
szSQL = "";
else
//dopisywanie linii do postaci sql
if StrLength(szSQL)>0 then szSQL = szSQL + " " + szLine;
else szSQL = szLine;
endif;
endif;
endif; //StrLength = 0;
ListSetIndex(ListaSQL,LISTNEXT);
endfor;
else
if (bLog) then WriteLog(1,"- brak pliku skryptu SQL"); endif;
endif;
ListDestroy(ListaSQL);
set objConn = NOTHING;
set objRST = NOTHING;
endif; //bOpen - połączono;
return bReturn;
end;
Programowanie c++/c#/delphi/javas/php/installscript/nativescript
Przykłady - przydatne funkcje
wtorek, 27 października 2009
Wykonanie skryptu SQL z pliku
Etykiety:
InstallShield - SQL
Subskrybuj:
Komentarze do posta (Atom)
Ten komentarz został usunięty przez administratora bloga.
OdpowiedzUsuń