001: FUNCTION ReadImageFromSQL 002: *-- 传递参数:员工工号,是否使用本地临时照片文件 003: LPARAMETERS tcPerCode,tlUseLocalPhoto 004: 005: LOCAL loConn,loRS,loStream 006: LOCAL lcDriverName,lcServerName,lcDatabaseName,lcUserName,lcPassword 007: LOCAL lcConnectString 008: LOCAL lcTempImageFile,luPhotoData,lcPhotoPath 009: lcPhotoPath = GETENV("TEMP") + "\HR_Photo\" 010: lcTempImageFile = lcPhotoPath + tcPerCode + ".bmp" 011: 012: *-- 如果使用本地照片就从本地找 013: IF tlUseLocalPhoto 014: IF FILE("&lcTempImageFile") 015: RETURN lcTempImageFile 016: ENDIF 017: ENDIF 018: 019: loConn= CREATEOBJECT("Adodb.Connection") 020: loRS?= CREATEOBJECT("Adodb.Recordset") 021: loStream = CREATEOBJECT("ADODB.Stream") 022: 023: *-- 连接字符串 024: lcDriverName?= "{SQL Server}" 025: lcServerName?= ReadIni("ServerSetting","ServerName",100) 026: lcDatabaseName?= ReadIni("ServerSetting","DatabaseName",100) 027: lcUserName?= ReadIni("ServerSetting","SystemAdmin",100) 028: lcPassword?= ReadIni("ServerSetting","Password",100) 029: lcConnectString?= ; 030: "DRIVER=" + lcDriverName + ";" + ; 031: "SERVER=" + lcServerName + ";" + ; 032: "DATABASE=" + lcDataBaseName + ";" + ; 033: "UID=" + lcUserName + ";" + ; 034: "PWD=" + lcPassword 035: 036: IF !DIRECTORY("&lcPhotoPath") 037: MD lcPhotoPath 038: ENDIF 039: 040: loConn.ConnectionString = lcConnectString 041: loConn.Open 042: 043: loRS.ActiveConnection = loConn 044: loRS.LockType= 2?&& adLockPessimistic 045: loRS.CursorType= 3?&& adOpenStatic 046: loRS.source = "select ID,per_code,photo from personal where per_code = '" + tcPerCode + "'" 047: loRS.Open 048: 049: luPhotoData = loRS.Fields("photo").Value 050: loRS.Close 051: loConn.Close 052: 053: If !IsNull(luPhotoData) Then 054: loStream.Type = 1 && adTypeBinary 055: loStream.Open 056: loStream.Write(luPhotoData) 057: loStream.SaveToFile(lcTempImageFile,2) 058: Else 059: lcTempImageFile = "" 060: EndIf 061: 062: RETURN lcTempImageFile 063:
|