在VFP中讀取SQL-Server數(shù)據(jù)庫Image字段

字號(hào):

001: FUNCTION ReadImageFromSQL
    002: *-- 傳遞參數(shù):員工工號(hào),是否使用本地臨時(shí)照片文件
    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: