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ń