دوستان هرکسی تو هر بخشش اشکالی داشت یا کدها نامفهوم بود بگید توضیح بدم الان نمیگم برای اینکه نمیدونم برای کسی مفید هست یا نه به هر حال سالها تجربه برنامه نویسی تو این کدها نهفته است.
امیدوارم بدردتون بخوره.!
Public MainDataServer,MainDataSource,APP_DALayer,WaitStri ngMSg,DAL,WaitStringMSginsupd,oEconect,activedataf ormCheked;
,TarGetDataBaseName,SourceDataBaseName,IsoTempPath ,m.DefualtDb,m.CurrentDb
MainDataServer=[use Production]
MainDataSource=[use inv1394]
TarGetDataBaseName=[Production]
SourceDataBaseName=[inv1394]
IsoTempPath=[\\IP or DNS\hoa\transfertosql\transferd\]
m.DefualtDb=''
m.CurrentDb=_SAL
APP_DALayer= [sqlmgnt.vcx]
STORE .F. TO activedataformCheked
WaitStringMSg='...!در حال خواندن اطلاعات از سرور'
WaitStringMSginsupd='...!در حال به روز رساني اطلاعات'
Set Classlib To sqlmgnt.vcx Additive
DAL = Newobject("DALAYER",APP_DALayer)
If !DAL.SqlServerCheck()
=alert([!.رقرار نيست Sql Server ارتباط با])
Thisform.Release
Return .F.
Endif
PROCEDURE SqlServerCheck
PARAMETERS otherdatabasevisible AS boolean
#DEFINE mb_okbutton 0
#DEFINE mb_stopsign 16
SuccRet=.T.
WITH THIS
IF TYPE('oEconect')!='U'
=SQLIDLEDISCONNECT(oeconect)
ENDIF
RELEASE oeconect
PUBLIC oeconect
IF .not. PEMSTATUS(_SCREEN,[lCconstr],5)
IF FILE([CSQLMNGT.SSL])
SET CLASSLIB TO _encdeccryptor.vcx ADDITIVE
_decryptor=CREATEOBJECT([_encdecryptor])
_ls=_decryptor.decryptor()
IF FILE([CSQLMNGT.SSL]) AND _ls
RESTORE FROM csqlmngt.ssl ADDITIVE
_ls=_decryptor.encryptor()
RELEASE _decryptor
IF !otherdatabasevisible
IF type([m.ChangedDB])<>[L]
MainDataServer =iif(m.activedataformCheked,MainDataSource,alltrim (csetdatabasestr))
ENDIF
ENDIF
.lcconstr=csetconnectstr
_SCREEN.ADDPROPERTY([lCconstr],.lcconstr)
_screen.AddProperty([LCDataRep],alltrim(csetdatabasestr))
ELSE
MESSAGEBOX([CS is not Work!]+CHR(13)+[1-Copy File 'csqlmngt.ssl' from Servername\Hoa\inv-win\update-exe Folder]+CHR(13);
+[2-if not found file 'csqlmngt.ssl' Run Setting.exe]+CHR(13);
+[3-Please Contact by System Administrator],0+16+0,'System Error')
CLEAR EVENTS
CLOSE ALL
CLEAR ALL
QUIT
ENDIF
ELSE
MESSAGEBOX([CS is not Work!]+CHR(13)+[1-Copy File 'csqlmngt.ssl' from Servername\Hoa\inv-win\update-exe Folder]+CHR(13);
+[2-if not found file 'csqlmngt.ssl' Run Setting.exe]+CHR(13);
+[3-Please Contact by System Administrator],0+16+0,'System Error')
CLEAR EVENTS
CLOSE ALL
CLEAR ALL
QUIT
ENDIF
ELSE
IF !otherdatabasevisible
IF type([m.ChangedDB])<>[L]
maindataserver =iif(m.activedataformCheked,MainDataSource,iif(typ e([csetdatabasestr])=[U],_screen.LCDataRep,csetdatabasestr))
ENDIF
ENDIF
.lcconstr=_SCREEN.lCconstr
ENDIF
oeconect = SQLSTRINGCONNECT(.lcconstr)
IF oeconect <= 0
LOCAL ARRAY laerror[1]
AERROR(laerror)
MESSAGEBOX(laerror[2],mb_okbutton+mb_stopsign,[SQL Server Error:]+TRANSFORM(laerror[5]))
SuccRet=.F.
ENDIF
.evaloeconect = oeconect
SuccRet=.sqlsetpropvalue(oeconect)
ENDWITH
RETURN SuccRet
فایل CSQLMNGT.SSL حاوی کانکشن استرینگ هست کافی این فایل کنار کلاس ها و فایل اجرایی ایجاد کنید با ساختار زیر ...
Driver=SQL Server;Server=SQLSRV\INVENTORYSQLSRV;UID=**;PWD=** ;Initial Catalog=Production;Data Source=SQLSRV\INVENTORYSQLSRV;
این کلاس هم می تونید تو شاخه نصبی ویژوال فاکس پیدا کنید _encdeccryptor.vcx