wolf9228 Posted May 8, 2013 Share Posted May 8, 2013 (edited) New_MS_AccessDBNew_MS_AccessDB.zip New_MS_AccessDB vNew_MS_AccessDB.zip New things running in Unicode mode (SQLDriverConnectW) Add New function SetStreamFile($hDatabase,$TableName,$ColumnName,$PrimaryKeyName,$PrimaryKeyValue,$FilePath)ODBC API Referencehttp://msdn.microsof...2(v=vs.85).aspx Microsoft Access Driver Programming Considerationhttp://msdn.microsof...2(v=vs.85).aspx MS_AccessDB.au3 expandcollapse popup#Include <WinAPI.au3> #include <Math.au3> Global $odbc32 = DllOpen("odbc32.dll") , $StructToString = False , $AUTOCOMMIT = True Func MS_AccessDatabaseCreate($DbFileName = "MSDataBase.mdb",$DshWnd = 0,$OverExFile = False) ; $OverExFile ==> overwrite existing file Local $ODBC_ADD_SYS_DSN = 4 Local $lpszDriver = "Microsoft Access Driver (*.MDB)" & Chr(0) Local $lpszAttributes = "CREATE_DB=" & $DbFileName & " General" & Chr(0) if Not($DshWnd) Then $DshWnd = _WinAPI_GetDesktopWindow() if ($OverExFile) And (FileExists($DbFileName)) Then if Not(FileDelete($DbFileName)) Then Return SetError(1,0,False) EndIf Local $Return = DllCall("odbccp32.dll","BOOL","SQLConfigDataSourceW","HWND",$DshWnd , _ "WORD",$ODBC_ADD_SYS_DSN,"wstr",$lpszDriver,"wstr",$lpszAttributes) if @error Or Not($Return[0]) Then Return SetError(2,0,False) Return True EndFunc Func MS_AccessDatabaseConnect($DbFileName = "MSDataBase.mdb",$UserID = "",$PassWord = "",$DshWnd = 0) Local $SQL_HANDLE_ENV = 1 , $SQL_NULL_HANDLE = 0 , $SQL_ATTR_ODBC_VERSION = 200 Local $SQL_OV_ODBC3 = 3,$Return = 0,$SQL_HANDLE_DBC = 2,$SQL_LOGIN_TIMEOUT = 103 Local $SQL_SUCCESS = 0 , $SQL_SUCCESS_WITH_INFO = 1 , $SQL_DRIVER_NOPROMPT = 0 Local $TIMEOUT = 5 , $hDatabase[2], $SQL_AUTOCOMMIT = 102,$SQL_AUTOCOMMIT_ON = 1 Local $SQL_IS_INTEGER = -6 Local $InConnectionString = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ=" & $DbFileName if StringLen($UserID) Then $InConnectionString &= ";UID=" & $UserID if StringLen($PassWord) Then $InConnectionString &= ";PWD=" & $PassWord if Not($DshWnd) Then $DshWnd = _WinAPI_GetDesktopWindow() Local $Return = DllCall($odbc32,"short","SQLAllocHandle", _ "short",$SQL_HANDLE_ENV,"ptr",$SQL_NULL_HANDLE,"ptr*",0) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then Return SetError(1,0,0) EndIf Local $henv = $Return[3] $Return = DllCall($odbc32,"short","SQLSetEnvAttr","ptr",$henv, _ "long",$SQL_ATTR_ODBC_VERSION,"long",$SQL_OV_ODBC3,"long",0) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_ENV,"ptr",$henv) Return SetError(2,0,0) EndIf $Return = DllCall($odbc32,"short","SQLAllocHandle","short",$SQL_HANDLE_DBC,"ptr",$henv,"ptr*",0) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_ENV,"ptr",$henv) Return SetError(3,0,0) EndIf Local $hdbc = $Return[3] $Return = DllCall($odbc32,"short","SQLSetConnectAttr","ptr", _ $hdbc,"long",$SQL_LOGIN_TIMEOUT,"long",$TIMEOUT,"long",$SQL_IS_INTEGER) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then DllCall($odbc32,"short","SQLDisconnect","ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_DBC,"ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_ENV,"ptr",$henv) Return SetError(4,0,0) EndIf if ($AUTOCOMMIT) Then $Return = DllCall($odbc32,"short","SQLSetConnectAttr","ptr", _ $hdbc,"long",$SQL_AUTOCOMMIT,"long",$SQL_AUTOCOMMIT_ON,"long",$SQL_IS_INTEGER) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then DllCall($odbc32,"short","SQLDisconnect","ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_DBC,"ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_ENV,"ptr",$henv) Return SetError(5,0,0) EndIf EndIf $Return = DllCall($odbc32,"short","SQLDriverConnectW", _ "ptr",$hdbc ,"HWND",$DshWnd,"wstr",$InConnectionString, _ "short",-3,"ptr",0,"short",0,"short*",0,"short",$SQL_DRIVER_NOPROMPT) if @error Or ($Return[0] <> $SQL_SUCCESS And $Return[0] <> $SQL_SUCCESS_WITH_INFO) Then DllCall($odbc32,"short","SQLDisconnect","ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_DBC,"ptr",$hdbc) DllCall($odbc32,"short","SQLFreeHandle","short",$SQL_HANDLE_ENV,"ptr",$henv) Return SetError(6,0,0) EndIf $hDatabase = DllStructCreate("ptr hdbc;ptr henv") DllStructSetData($hDatabase,"hdbc",$hdbc) DllStructSetData($hDatabase,"henv",$henv) Return $hDatabase EndFunc Func MS_AccessDatabaseDisconnect($hDatabase) Local $SQL_HANDLE_ENV = 1,$SQL_HANDLE_DBC = 2 Local $hdbc = DllStructGetData($hDatabase,"hdbc") Local $henv = DllStructGetData($hDatabase,"henv") SQLDisconnect($hdbc) if @error Then Return SetError(1,0,False) SQLFreeHandle($SQL_HANDLE_DBC,$hdbc) if @error Then Return SetError(2,0,False) SQLFreeHandle($SQL_HANDLE_ENV,$henv) if @error Then Return SetError(3,0,False) Return True EndFunc Func CreateTable($hDatabase,$TableName,$ColumnsListNameTypeSize) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "CREATE TABLE " & $TableName & " (" & $ColumnsListNameTypeSize & ")" Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func InsertInToTable($hDatabase,$TableName,$ColumnsList,$ValueList) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "INSERT INTO " & $TableName & " (" & $ColumnsList & _ ") VALUES(" & $ValueList & ")" Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func ColumnsAdd($hDatabase,$TableName,$ColumnsListNameTypeSize) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "ALTER TABLE " & $TableName & _ " ADD " & $ColumnsListNameTypeSize Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func UpdateTable($hDatabase,$TableList,$ColumnsList,$OperationsList) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "UPDATE " & $TableList & " SET " & _ $ColumnsList & " WHERE " & $OperationsList Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func DeleteFromTable($hDatabase,$TableName,$OperationsList) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "DELETE FROM " & _ $TableName & " WHERE " & $OperationsList Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func TableRemove($hDatabase,$TableName) Local $SQL_HANDLE_STMT = 3 Local $StatementText = "DROP TABLE " & $TableName Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,False) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func SelectRecordsGroup($hDatabase,$TableName,$ColumnsList = "",$OperationList = "") ;$ColumnsList Can be empty string "" ;$OperationList Can be empty string "" Local $SQL_HANDLE_STMT = 3 , $SQL_Error = -1 , $SQL_INTEGER = 4 Local $CountStatText = "SELECT COUNT(*) FROM " & $TableName Local $StatementText = "SELECT " if StringLen($ColumnsList) Then $StatementText &= $ColumnsList & " FROM " & $TableName Else $StatementText &= "* FROM " & $TableName EndIf if StringLen($OperationList) Then $StatementText &= " WHERE " & $OperationList $CountStatText &= " WHERE " & $OperationList EndIf Local $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(1,0,0) SQLExecDirect($hStatement,$CountStatText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(2,0,0) EndIf SQLFetch($hStatement) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(3,0,0) EndIf Local $DataStruct = DllStructCreate("INT") , $Col_Num = 1 SQLGetData($hStatement,$Col_Num,$SQL_INTEGER,$DataStruct) if @error Or @extended = $SQL_Error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(4,0,0) EndIf Local $RowsCount = DllStructGetData($DataStruct,1) SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) $hStatement = GetStmtHandle($hDatabase) if @error Then Return SetError(5,0,0) SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(6,0,0) EndIf Local $ColsCount = SQLGetColsCount($hStatement) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(7,0,0) EndIf Local $ihStatement = 0, $tagSt = "" $tagSt = "PTR HST;INT RSC;INT CSC;WCHAR STT[" & (StringLen($StatementText) + 1) & "]" $ihStatement = DllStructCreate($tagSt) DllStructSetData($ihStatement,"HST",$hStatement) DllStructSetData($ihStatement,"RSC",$RowsCount) DllStructSetData($ihStatement,"CSC",$ColsCount) DllStructSetData($ihStatement,"STT",$StatementText) Return $ihStatement EndFunc Func GetRecordsData(ByRef $hStatement,$hStatementFree = True) Local $SQL_TYPE_DATE = 91 , $SQL_TYPE_TIME = 92, $SQL_TYPE_TIMESTAMP = 93 Local $SQL_BIT = -7,$SQL_WVARCHAR = -9,$SQL_WLONGVARCHAR = -10,$SQL_WCHAR = -8 Local $SQL_VARBINARY = -3 ,$SQL_REAL = 7,$SQL_GUID = -11,$SQL_INTEGER = 4 Local $SQL_TINYINT = -6,$SQL_DOUBLE = 8 ,$Row_Num = 4 , $SQL_SMALLINT = 5 Local $SQL_LONGVARBINARY = -4 , $SQL_NUMERIC = 2 , $SQL_HANDLE_STMT = 3 Local $DatType , $ColSize , $ColName , $SQL_BINARY = -2 , $SQL_Error = -1 Local $HandleSta = DllStructGetData($hStatement,"HST") Local $RowsCount = DllStructGetData($hStatement,"RSC") Local $ColsCount = DllStructGetData($hStatement,"CSC") Local $StateText = DllStructGetData($hStatement,"STT") if Not($RowsCount) Or Not($ColsCount) Then Return SetError(1,0,0) Local $ReturnArray[$RowsCount + 3][$ColsCount] While(SQLFetch($HandleSta)) For $Col_Num = 1 To $ColsCount Local $DescribeArray = SQLDescribeCol($HandleSta,$Col_Num) if @error Then Return SetError(2,0,0) $ColName = $DescribeArray[0] $ColSize = $DescribeArray[1] $DatType = $DescribeArray[2] if ($Row_Num = 4) Then $ReturnArray[0][$Col_Num - 1] = $ColName $ReturnArray[1][$Col_Num - 1] = $ColSize $ReturnArray[2][$Col_Num - 1] = $DatType EndIf Local $VALUES = "",$GetDataerror = 0 Switch $DatType Case $SQL_WCHAR , $SQL_WVARCHAR , $SQL_WLONGVARCHAR Local $GetSizeStruct = DllStructCreate("WCHAR[1]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$GetSizeStruct,True) if @error Then Return SetError(3,0,0) if @extended <> $SQL_Error Then Local $Length = @extended Local $DataStruct = DllStructCreate("WCHAR[" & ($Length + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) $VALUES = DllStructGetData($DataStruct,1) Else $VALUES = "" ;NULL VALUE EndIf Case $SQL_BINARY , $SQL_VARBINARY , $SQL_LONGVARBINARY Local $GetSizeStruct = DllStructCreate("BYTE[1]") SQLGetData($HandleSta,$Col_Num,$SQL_BINARY,$GetSizeStruct,True) if @error Then Return SetError(4,0,0) if @extended <> $SQL_Error Then Local $Length = @extended Local $DataStruct = DllStructCreate("BYTE[" & $Length + 1 & "]") SQLGetData($HandleSta,$Col_Num,$SQL_BINARY,$DataStruct) $VALUES = $DataStruct Else $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_DATE if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(5,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("SHORT year;SHORT month;SHORT day") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_DATE,$DataStruct) if @error Then Return SetError(6,0,0) if (@extended = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_TIME if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(7,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else $DataStruct = DllStructCreate("SHORT hour;SHORT minute;SHORT second") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_TIME,$DataStruct) if @error Then Return SetError(8,0,0) if (@extended = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_TIMESTAMP if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(9,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("SHORT year;SHORT month;" & _ "SHORT day;SHORT hour;SHORT minute;SHORT second") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_TIMESTAMP,$DataStruct) if @error Then Return SetError(10,0,0) if (@extended = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_GUID if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(11,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("ulong Data1;" & _ "ushort Data2;ushort Data3;byte Data4[8]") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_GUID,$DataStruct) if @error Then Return SetError(12,0,0) if (@extended = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TINYINT , $SQL_BIT Local $DataStruct = DllStructCreate("BYTE") SQLGetData($HandleSta,$Col_Num,$SQL_TINYINT,$DataStruct) if @error Then Return SetError(13,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_INTEGER Local $DataStruct = DllStructCreate("INT") SQLGetData($HandleSta,$Col_Num,$SQL_INTEGER,$DataStruct) if @error Then Return SetError(14,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_REAL Local $DataStruct = DllStructCreate("float") SQLGetData($HandleSta,$Col_Num,$SQL_REAL,$DataStruct) if @error Then Return SetError(15,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_DOUBLE Local $DataStruct = DllStructCreate("DOUBLE") SQLGetData($HandleSta,$Col_Num,$SQL_DOUBLE,$DataStruct) if @error Then Return SetError(16,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_NUMERIC Local $DataStruct = DllStructCreate("BYTE[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_NUMERIC,$DataStruct) if @error Then Return SetError(17,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_SMALLINT Local $DataStruct = DllStructCreate("SHORT") SQLGetData($HandleSta,$Col_Num,$SQL_SMALLINT,$DataStruct) if @error Then Return SetError(18,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case Else Return SetError(19,0,0) EndSwitch $ReturnArray[$Row_Num - 1][$Col_Num - 1] = $VALUES Next $Row_Num += 1 WEnd if ($hStatementFree) Then SQLFreeHandle($SQL_HANDLE_STMT,$HandleSta) $hStatement = 0 Else SQLFreeStmt($HandleSta,0) ; $SQL_CLOSE = 0 SQLExecDirect($HandleSta,$StateText) EndIf ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type Return $ReturnArray EndFunc Func EnumRecordsData(ByRef $hStatement,$EnumRecDataProc,$hStatementFree = True) ;---------------------EnumRecDataProc---------------------------------------------------------- ;Func EnumRecDataProc($IsNullValue,$Value,$ColName,$$DatType,$ColMaxSize,$RowNum,$ColNum) ;return ;True ;Continue ;False ; Stop ; ;return true; ;EndFunc ;---------------------EnumRecDataProc---------------------------------------------------------- Local $SQL_TYPE_DATE = 91 , $SQL_TYPE_TIME = 92, $SQL_TYPE_TIMESTAMP = 93 Local $SQL_BIT = -7,$SQL_WVARCHAR = -9,$SQL_WLONGVARCHAR = -10,$SQL_WCHAR = -8 Local $SQL_VARBINARY = -3 ,$SQL_REAL = 7,$SQL_GUID = -11,$SQL_INTEGER = 4 Local $SQL_TINYINT = -6,$SQL_DOUBLE = 8 ,$Row_Num = 4 , $SQL_SMALLINT = 5 Local $SQL_LONGVARBINARY = -4 , $SQL_NUMERIC = 2 , $SQL_HANDLE_STMT = 3 Local $DatType , $ColSize , $ColName , $SQL_BINARY = -2 , $SQL_Error = -1 Local $iReg = DllCallbackRegister($EnumRecDataProc,"int","int;int;int;int;int;int;int") if @error Then Return SetError(1,0,False) DllCallbackFree($iReg) Local $HandleSta = DllStructGetData($hStatement,"HST") Local $RowsCount = DllStructGetData($hStatement,"RSC") Local $ColsCount = DllStructGetData($hStatement,"CSC") Local $StateText = DllStructGetData($hStatement,"STT") if Not($RowsCount) Or Not($ColsCount) Then Return SetError(2,0,False) While(SQLFetch($HandleSta)) For $Col_Num = 1 To $ColsCount Local $DescribeArray = SQLDescribeCol($HandleSta,$Col_Num) if @error Then Return SetError(3,0,False) $ColName = $DescribeArray[0] $ColSize = $DescribeArray[1] $DatType = $DescribeArray[2] Local $VALUES = "",$GetDataerror = 0 Switch $DatType Case $SQL_WCHAR , $SQL_WVARCHAR , $SQL_WLONGVARCHAR Local $GetSizeStruct = DllStructCreate("WCHAR[1]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$GetSizeStruct,True) if @error Then Return SetError(4,0,False) $GetDataerror = @extended if $GetDataerror <> $SQL_Error Then Local $Length = $GetDataerror Local $DataStruct = DllStructCreate("WCHAR[" & ($Length + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) $VALUES = DllStructGetData($DataStruct,1) Else $VALUES = "" ;NULL VALUE EndIf Case $SQL_BINARY , $SQL_VARBINARY , $SQL_LONGVARBINARY Local $GetSizeStruct = DllStructCreate("BYTE[1]") SQLGetData($HandleSta,$Col_Num,$SQL_BINARY,$GetSizeStruct,True) if @error Then Return SetError(5,0,False) $GetDataerror = @extended if $GetDataerror <> $SQL_Error Then Local $Length = $GetDataerror Local $DataStruct = DllStructCreate("BYTE[" & $Length + 1 & "]") SQLGetData($HandleSta,$Col_Num,$SQL_BINARY,$DataStruct) $VALUES = $DataStruct Else $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_DATE if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(6,0,0) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("SHORT year;SHORT month;SHORT day") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_DATE,$DataStruct) if @error Then Return SetError(7,0,False) $GetDataerror = @extended if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_TIME if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(8,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else $DataStruct = DllStructCreate("SHORT hour;SHORT minute;SHORT second") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_TIME,$DataStruct) if @error Then Return SetError(9,0,False) $GetDataerror = @extended if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TYPE_TIMESTAMP if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(10,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("SHORT year;SHORT month;" & _ "SHORT day;SHORT hour;SHORT minute;SHORT second") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_TYPE_TIMESTAMP,$DataStruct) if @error Then Return SetError(11,0,False) $GetDataerror = @extended if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_GUID if ($StructToString) Then Local $DataStruct = DllStructCreate("WCHAR[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_WCHAR,$DataStruct) if @error Then Return SetError(12,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Else Local $DataStruct = DllStructCreate("ulong Data1;" & _ "ushort Data2;ushort Data3;byte Data4[8]") $VALUES = $DataStruct SQLGetData($HandleSta,$Col_Num,$SQL_GUID,$DataStruct) if @error Then Return SetError(13,0,False) $GetDataerror = @extended if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE EndIf Case $SQL_TINYINT , $SQL_BIT Local $DataStruct = DllStructCreate("BYTE") SQLGetData($HandleSta,$Col_Num,$SQL_TINYINT,$DataStruct) if @error Then Return SetError(14,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_INTEGER Local $DataStruct = DllStructCreate("INT") SQLGetData($HandleSta,$Col_Num,$SQL_INTEGER,$DataStruct) if @error Then Return SetError(15,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_REAL Local $DataStruct = DllStructCreate("float") SQLGetData($HandleSta,$Col_Num,$SQL_REAL,$DataStruct) if @error Then Return SetError(16,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_DOUBLE Local $DataStruct = DllStructCreate("DOUBLE") SQLGetData($HandleSta,$Col_Num,$SQL_DOUBLE,$DataStruct) if @error Then Return SetError(17,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_NUMERIC Local $DataStruct = DllStructCreate("BYTE[" & ($ColSize + 1) & "]") SQLGetData($HandleSta,$Col_Num,$SQL_NUMERIC,$DataStruct) if @error Then Return SetError(18,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case $SQL_SMALLINT Local $DataStruct = DllStructCreate("SHORT") SQLGetData($HandleSta,$Col_Num,$SQL_SMALLINT,$DataStruct) if @error Then Return SetError(19,0,False) $GetDataerror = @extended $VALUES = DllStructGetData($DataStruct,1) if ($GetDataerror = $SQL_Error) Then $VALUES = "" ;NULL VALUE Case Else Return SetError(20,0,False) EndSwitch Local $IsNullValue = ($GetDataerror == $SQL_Error) Local $Return = Call($EnumRecDataProc,$IsNullValue , _ $VALUES,$ColName,$DatType,$ColSize,$Row_Num - 3,$Col_Num) if Not($Return) Then if ($hStatementFree) Then SQLFreeHandle($SQL_HANDLE_STMT,$HandleSta) $hStatement = 0 Else SQLFreeStmt($HandleSta,0) ; $SQL_CLOSE = 0 SQLExecDirect($HandleSta,$StateText) EndIf Return True EndIf Next $Row_Num += 1 WEnd if ($hStatementFree) Then SQLFreeHandle($SQL_HANDLE_STMT,$HandleSta) $hStatement = 0 Else SQLFreeStmt($HandleSta,0) ; $SQL_CLOSE = 0 SQLExecDirect($HandleSta,$StateText) EndIf Return True EndFunc Func SaveStreamFile($hDatabase,$TableName,$ColumnName,$PrimaryKeyName,$PrimaryKeyValue,$FilePath) Local $nBytes Local $ByteStruct = GetBinary($hDatabase,$TableName,$ColumnName,$PrimaryKeyName,$PrimaryKeyValue) if @error Then Return SetError(1,0,False) Local $hFile = _WinAPI_CreateFile($FilePath,1) if Not($hFile) Then Return SetError(2,0,False) $Return = _WinAPI_WriteFile($hFile,DllStructGetPtr($ByteStruct),DllStructGetSize($ByteStruct),$nBytes) if Not($Return) Then _WinAPI_CloseHandle($hFile) Return SetError(3,0,False) EndIf _WinAPI_CloseHandle($hFile) Return True EndFunc Func SetStreamFile($hDatabase,$TableName,$ColumnName,$PrimaryKeyName,$PrimaryKeyValue,$FilePath) Local $ParamNu = 1 , $SQL_PARAM_INPUT = 1 , $SQL_C_BINARY = -2 Local $SQL_HANDLE_STMT = 3,$DatType = 0,$ColNu = 1, $InSize = 0 Local $SQL_NEED_DATA = 99,$SizeAtOneTime = 1048576,$FileSize = 0 Local $SQL_WVARCHAR = -9,$SQL_WLONGVARCHAR = -10,$SQL_WCHAR = -8 Local $SQL_VARBINARY = -3 ,$SQL_LONGVARBINARY = -4,$FileSize = 0 Local $SQL_BINARY = -2 , $FileSize ,$BytesRead , $LenAtExec ; SizeAtOneTime = 1048576 // 1MB Local $FileSize = FileGetSize($FilePath) if @error Then Return SetError(1,0,False) Local $hFile = _WinAPI_CreateFile($FilePath,2,2) if Not($hFile) Then Return SetError(2,0,False) Local $nBytes Local $DataStruct = DllStructCreate("BYTE[" & $FileSize & "]") $nReturn = _WinAPI_ReadFile($hFile,DllStructGetPtr($DataStruct),$FileSize,$nBytes) if Not($nReturn) Then _WinAPI_CloseHandle($hFile) Return SetError(3,0,False) EndIf _WinAPI_CloseHandle($hFile) Local $ByteData = DllStructGetPtr($DataStruct) Local $hStatement = GetStmtHandle($hDatabase) if (@error) Then Return SetError(4,0,false) Local $StatementText = "SELECT " & $ColumnName & " FROM " & $TableName SQLExecDirect($hStatement,$StatementText) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(5,0,False) EndIf Local $DescribeArray = SQLDescribeCol($hStatement,$ColNu) if @error Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(6,0,False) EndIf $DatType = $DescribeArray[2] $pString = $DatType == $SQL_WCHAR Or $DatType == $SQL_WLONGVARCHAR _ Or $DatType == $SQL_WVARCHAR $pBinary = $DatType == $SQL_BINARY Or $DatType == $SQL_LONGVARBINARY _ Or $DatType == $SQL_VARBINARY if Not($pString) And Not($pBinary) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(7,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Local $hStatement = GetStmtHandle($hDatabase) if (@error) Then Return SetError(8,0,false) $LenAtExec = SQL_LEN_DATA_AT_EXEC($FileSize) $LenAtExecSt = DllStructCreate("int") DllStructSetData($LenAtExecSt,1,$LenAtExec) $ParameterValuePtrSt = DllStructCreate("int") DllStructSetData($ParameterValuePtrSt,1,1) $nReturn = DllCall($odbc32,"short","SQLBindParameter","ptr",$hStatement,"USHORT",$ParamNu, _ "short",$SQL_PARAM_INPUT,"short",$SQL_C_BINARY,"short",$DatType,"LONG",$FileSize,"short",0 _ ,"ptr",DllStructGetPtr($ParameterValuePtrSt),"LONG",0,"ptr",DllStructGetPtr($LenAtExecSt)) if @error Or ($nReturn[0] <> 0 And $nReturn[0] <> 1) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(9,0,False) EndIf $StatementText = "UPDATE " & $TableName & " SET " & $ColumnName & " = ? WHERE " & _ $PrimaryKeyName & " = " & $PrimaryKeyValue $nReturn = SQLExecDirect($hStatement,$StatementText) if ($nReturn <> $SQL_NEED_DATA) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(10,0,False) EndIf Local $ValuePtrPtr = 0 $nReturn = SQLParamData($hStatement,$ValuePtrPtr) if ($nReturn <> $SQL_NEED_DATA) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(11,0,False) EndIf while (($FileSize > 0)) $InSize = _Min($SizeAtOneTime,$FileSize) $nReturn = SQLPutData($hStatement,$ByteData,$InSize) if (@error) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(12,0,False) EndIf $FileSize -= $InSize; WEnd $nReturn = SQLParamData($hStatement,$ValuePtrPtr) if (@error) Then SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return SetError(13,0,False) EndIf SQLFreeHandle($SQL_HANDLE_STMT,$hStatement) Return True EndFunc Func GetBinary($hDatabase,$TableName,$ColumnName,$PrimaryKeyName,$PrimaryKeyValue) Local $OpList = $PrimaryKeyName & " = " & $PrimaryKeyValue , $nBytes Local $SQL_BINARY = -2 , $SQL_VARBINARY = -3 , $SQL_LONGVARBINARY = -4 Local $hStatement = SelectRecordsGroup($hDatabase,$TableName,$ColumnName,$OpList) if @error Then Return SetError(1,0,0) Local $ReturnArray = GetRecordsData($hStatement) if @error Then Return SetError(2,0,0) Switch $ReturnArray[2][0] Case $SQL_BINARY , $SQL_VARBINARY , $SQL_LONGVARBINARY Local $ByteStruct = $ReturnArray[3][0] Return $ByteStruct Case Else Return SetError(3,0,0) EndSwitch EndFunc Func SQLDisconnect($ConnectionHandle) Local $Return = DllCall($odbc32,"short","SQLDisconnect","ptr",$ConnectionHandle) if @error Or ($Return[0] <> 0) Then Return SetError(1,0,False) Return True EndFunc Func SQLExecDirect($StatementHandle,$StatementText) Local $TextLength = StringLen($StatementText) Local $Return = DllCall($odbc32,"short","SQLExecDirectW","ptr",$StatementHandle, _ "wstr",$StatementText,"long",$TextLength) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,$Return[0]) Return $Return[0] EndFunc Func SQLFreeStmt($StatementHandle,$Option) Local $Return = DllCall($odbc32,"short","SQLFreeStmt","ptr",$StatementHandle,"ushort",$Option) if @error Or ($Return[0] <> 0) Then Return SetError(1,0,False) Return True EndFunc Func SQLFreeHandle($HandleType,$Handle) Local $Return = DllCall($odbc32,"short","SQLFreeHandle","short",$HandleType,"ptr",$Handle) if @error Or ($Return[0] <> 0) Then Return SetError(1,0,False) Return True EndFunc Func GetStmtHandle($hDatabase) Local $SQL_HANDLE_STMT = 3 Local $hdbc = DllStructGetData($hDatabase,"hdbc") Local $Return = DllCall($odbc32,"short","SQLAllocHandle","short",$SQL_HANDLE_STMT,"ptr",$hdbc,"ptr*",0) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,0) Local $hStatement = $Return[3] Return $hStatement EndFunc Func SQLFetch($StatementHandle) Local $Return = DllCall($odbc32,"short","SQLFetch","ptr",$StatementHandle) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,False) Return SetError(0,$Return[0],True) EndFunc Func SQLDescribeCol($StatementHandle,$ColumnNumber) Local $Return = DllCall($odbc32,"short","SQLDescribeColW","ptr",$StatementHandle _ ,"short",$ColumnNumber,"wstr*",0,"short",0,"short*",0,"short*",0,"ULONG*" _ ,0,"short*",0,"short*",0) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,0) Local $NameLengthPtr = $Return[5] Local $ColumnNameSt = DllStructCreate("WCHAR[" & ($NameLengthPtr + 1) & "]") $Return = DllCall($odbc32,"short","SQLDescribeColW","ptr",$StatementHandle,"short", _ $ColumnNumber,"struct*",$ColumnNameSt,"short",($NameLengthPtr * 2),"ptr",0,"short*" _ ,0,"ULONG*",0,"short*",0,"short*",0) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(2,0,0) Local $DescribeArray[3] $DescribeArray[0] = DllStructGetData($ColumnNameSt,1) $DescribeArray[1] = $Return[7] $DescribeArray[2] = $Return[6] Return $DescribeArray EndFunc Func SQLGetData($StatementHandle,$Col_Num,$TargetType,$DataStruct,$NullSize = False) if ($NullSize) Then $Return = DllCall($odbc32,"short","SQLGetData","ptr",$StatementHandle _ ,"USHORT",$Col_Num,"short",$TargetType,"struct*",$DataStruct,"ULONG", _ 0,"ULONG*",0) Else $Return = DllCall($odbc32,"short","SQLGetData","ptr",$StatementHandle _ ,"USHORT",$Col_Num,"short",$TargetType,"struct*",$DataStruct,"ULONG", _ DllStructGetSize($DataStruct),"ULONG*",0) EndIf if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,False) Return SetError(0,$Return[6],True) EndFunc Func SQLCOMMIT($hDatabase) Local $hdbc = DllStructGetData($hDatabase,"hdbc"),$SQL_HANDLE_DBC = 2,$SQL_COMMIT = 0 Local $Return = DllCall($odbc32,"short","SQLEndTran","short",$SQL_HANDLE_DBC _ ,"ptr",$hdbc,"short",$SQL_COMMIT) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,False) Return SetError(0,0,True) EndFunc Func SQLGetColsCount($StatementHandle) Local $Return = DllCall($odbc32,"short","SQLNumResultCols","ptr",$StatementHandle,"short*",0) if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,0) Return $Return[2] EndFunc Func SQL_LEN_DATA_AT_EXEC($length) Local $SQL_LEN_DATA_AT_EXEC_OFFSET = (-100) Return (-($length)+$SQL_LEN_DATA_AT_EXEC_OFFSET) EndFunc Func SQLParamData($StatementHandle,ByRef $ValuePtrPtr) Local $Return if ($ValuePtrPtr) Then $Return = DllCall($odbc32,"short","SQLParamData","ptr",$StatementHandle,"ptr",$ValuePtrPtr) Else $Return = DllCall($odbc32,"short","SQLParamData","ptr",$StatementHandle,"ptr*",0) EndIf if @error Or ($Return[0] <> 0 And $Return[0] <> 1) Then Return SetError(1,0,$Return[0]) $ValuePtrPtr = $Return[2] Return SetError(0,$Return[0]) EndFunc Func SQLPutData($StatementHandle,$DataPtr,$StrLen_or_Ind) Local $Return = DllCall($odbc32,"short","SQLPutData","ptr",$StatementHandle,"ptr", _ $DataPtr,"LONG",$StrLen_or_Ind) if @error Or $Return[0] <> 0 And $Return[0] <> 1 Then Return SetError(1,0,$Return[0]) Return SetError(0,0,$Return[0]) EndFuncExamples Example_ArrayData.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1",@error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2",@error)) CreateTable($hDatabase,"Identity","Id INT PRIMARY KEY,Name VARCHAR(100),Age INT,Country VARCHAR(100)") if @error Then Exit(MsgBox(0,"ErrorMsg 3",@error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","1,'Sword',10,'British'") if @error Then Exit(MsgBox(0,"ErrorMsg 4",@error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","2,'Knight',20,'Egypt'") if @error Then Exit(MsgBox(0,"ErrorMsg 5",@error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","3,'Fighter',30,'Japan'") if @error Then Exit(MsgBox(0,"ErrorMsg 6",@error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","4,'Lightning',40,'Turkey'") if @error Then Exit(MsgBox(0,"ErrorMsg 7",@error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity") if @error Then Exit(MsgBox(0,"ErrorMsg 8",@error)) $iReturnArray = GetRecordsData($hstmt) if @error Then Exit(MsgBox(0,"ErrorMsg 9",@error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") $hstmt = SelectRecordsGroup($hDatabase,"Identity","Name") if @error Then Exit(MsgBox(0,"ErrorMsg 10",@error)) $iReturnArray = GetRecordsData($hstmt) if @error Then Exit(MsgBox(0,"ErrorMsg 11",@error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Name Column") MS_AccessDatabaseDisconnect($hDatabase) if @error Then Exit(MsgBox(0,"ErrorMsg 12",@error))Example_CreateTable.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" $iFile = FileOpen("iFile.txt",2) FileWrite($iFile,"Stream iFile") FileClose($iFile) $jFile = FileOpen("jFile.txt",2) FileWrite($jFile,"Stream jFile") FileClose($jFile) MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2"," Error Is Number " & @error)) CreateTable($hDatabase,"iBinary","Id INT PRIMARY KEY,Files LONGBINARY,iString LONGCHAR") ;Create iBinary Table And Three Columns Id , Files And iString ;(Id Data Type Int) , (Files Data Type LONGBINARY) , (iString Data Type LONGCHAR) , (PRIMARY KEY Is Id) if @error Then Exit(MsgBox(0,"ErrorMsg 3"," Error Is Number " & @error)) InsertInToTable($hDatabase,"iBinary","Id,iString","1,'One'") ;Insert In iBinary Table (Id = 1 and iString = 'One') if @error Then Exit(MsgBox(0,"ErrorMsg 4"," Error Is Number " & @error)) InsertInToTable($hDatabase,"iBinary","Id,iString","2,'Two'") ;Insert In iBinary Table (Id = 2 and iString = 'Two') if @error Then Exit(MsgBox(0,"ErrorMsg 5"," Error Is Number " & @error)) SetStreamFile($hDatabase,"iBinary","Files","Id","1","iFile.txt") ;SetStreamFile WHERE Id = 1 if @error Then Exit(MsgBox(0,"ErrorMsg 6"," Error Is Number " & @error)) SetStreamFile($hDatabase,"iBinary","Files","Id","2","jFile.txt") ;SetStreamFile WHERE Id = 2 if @error Then Exit(MsgBox(0,"ErrorMsg 7"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"iBinary") ; Select iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 8"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 9"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") SaveStreamFile($hDatabase,"iBinary","Files","Id","1","iNewFile.txt") ;SaveStreamFile WHERE Id = 1 if @error Then Exit(MsgBox(0,"ErrorMsg 10"," Error Is Number " & @error)) SaveStreamFile($hDatabase,"iBinary","Files","Id","2","jNewFile.txt") ;SaveStreamFile WHERE Id = 2 if @error Then Exit(MsgBox(0,"ErrorMsg 11"," Error Is Number " & @error)) MS_AccessDatabaseDisconnect($hDatabase) if @error Then Exit(MsgBox(0,"ErrorMsg 12"," Error Is Number " & @error))Example_Date_Time.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2"," Error Is Number " & @error)) $iColumns = "Id INT PRIMARY KEY,iDATE DATE,iTIME TIME,iTIMESTAMP TIMESTAMP,iGUID GUID" CreateTable($hDatabase,"Calendar",$iColumns) if @error Then Exit(MsgBox(0,"ErrorMsg 3"," Error Is Number " & @error)) $ValueList = "1,{d '2012-11-22'},{t '12:30:11'},{ts '2012-11-11 12:30:01'}" & _ ",{GUID '7BF80980-BF32-101A-8BBB-00AA00300CAB'}" ; Id = 1 , iDATE = '2012-11-22' , iTIME = '12:30:01' , iTIMESTAMP = '2012-11-11 12:30:01' InsertInToTable($hDatabase,"Calendar","Id,iDATE,iTIME,iTIMESTAMP,iGUID",$ValueList) if @error Then Exit(MsgBox(0,"ErrorMsg 4"," Error Is Number " & @error)) $ValueList = "2,{d '2011-01-02'},{t '10:20:08'},{ts '2011-01-02 10:20:08'}," & _ "{GUID '7BF80980-BF32-101A-8BBB-00AA00300CAB'}" ; Id = 2 , iDATE = '2011-01-02' , iTIME = '10:20:08' , iTIMESTAMP = '2011-01-02 10:20:08' InsertInToTable($hDatabase,"Calendar","Id,iDATE,iTIME,iTIMESTAMP,iGUID",$ValueList) if @error Then Exit(MsgBox(0,"ErrorMsg 5"," Error Is Number " & @error)) $ValueList = "3,{d '2000-12-04'},{t '01:01:01'},{ts '2000-12-04 01:01:01'}," & _ "{GUID '7BF80980-BF32-101A-8BBB-00AA00300CAB'}" ; Id = 3 , iDATE = '2000-12-04' , iTIME = '01:01:01' , iTIMESTAMP = '2000-12-04 01:01:01' InsertInToTable($hDatabase,"Calendar","Id,iDATE,iTIME,iTIMESTAMP,iGUID",$ValueList) if @error Then Exit(MsgBox(0,"ErrorMsg 6"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Calendar") ; Select Calendar Table if @error Then Exit(MsgBox(0,"ErrorMsg 7"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Calendar Table if @error Then Exit(MsgBox(0,"ErrorMsg 8"," Error Is Number " & @error)) _ArrayDisplay($iReturnArray,"Calendar Table Structs Data") ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type ; if All values of the elements is a TIMESTAMP Struct ;http://msdn.microsoft.com/en-us/library/windows/desktop/ms716289%28v=vs.85%29.aspx ;In ODBC 3.x, SQL_TYPE_DATE, SQL_TYPE_TIME, or SQL_TYPE_TIMESTAMP is ;returned in *DataTypePtr for date, time, or timestamp data, respectively; ;in ODBC 2.x, SQL_DATE, SQL_TIME, or SQL_TIMESTAMP is returned. The Driver ;Manager performs the required mappings when an ODBC 2.x application is ;working with an ODBC 3.x driver or when an ODBC 3.x application is working ;with an ODBC 2.x driver. ;DATE Struct // tag "SHORT year;SHORT month;SHORT day" // or NullValue ;TIME Struct // tag "SHORT hour;SHORT minute;SHORT second" // or NullValue ;TIMESTAMP Struct // tag "SHORT year;SHORT month;SHORT day;SHORT hour;SHORT minute;SHORT second" $StructToString = True $hstmt = SelectRecordsGroup($hDatabase,"Calendar") ; Select Calendar Table if @error Then Exit(MsgBox(0,"ErrorMsg 9"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Calendar Table if @error Then Exit(MsgBox(0,"ErrorMsg 10"," Error Is Number " & @error)) _ArrayDisplay($iReturnArray,"Calendar Table Staings Data") ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type ; if All values of the elements is a TIMESTAMP Struct ;http://msdn.microsoft.com/en-us/library/windows/desktop/ms716289%28v=vs.85%29.aspx ;In ODBC 3.x, SQL_TYPE_DATE, SQL_TYPE_TIME, or SQL_TYPE_TIMESTAMP is ;returned in *DataTypePtr for date, time, or timestamp data, respectively; ;in ODBC 2.x, SQL_DATE, SQL_TIME, or SQL_TIMESTAMP is returned. The Driver ;Manager performs the required mappings when an ODBC 2.x application is ;working with an ODBC 3.x driver or when an ODBC 3.x application is working ;with an ODBC 2.x driver. ;DATE Struct // tag "SHORT year;SHORT month;SHORT day" // or NullValue ;TIME Struct // tag "SHORT hour;SHORT minute;SHORT second" // or NullValue ;TIMESTAMP Struct // tag "SHORT year;SHORT month;SHORT day;SHORT hour;SHORT minute;SHORT second" MS_AccessDatabaseDisconnect($hDatabase) if @error Then Exit(MsgBox(0,"ErrorMsg 11"," Error Is Number " & @error))Example_Delete_Add.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2"," Error Is Number " & @error)) CreateTable($hDatabase,"Identity","Id INT PRIMARY KEY,Name LONGCHAR,Age INT,Country LONGCHAR") if @error Then Exit(MsgBox(0,"ErrorMsg 3"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","1,'Sword',10,'British'") if @error Then Exit(MsgBox(0,"ErrorMsg 4"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","2,'Knight',20,'Egypt'") if @error Then Exit(MsgBox(0,"ErrorMsg 5"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","3,'Fighter',30,'Japan'") if @error Then Exit(MsgBox(0,"ErrorMsg 6"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","4,'Lightning',40,'Turkey'") if @error Then Exit(MsgBox(0,"ErrorMsg 7"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity","Id,Name,Age,Country") ; Select Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 8"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 9"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") DeleteFromTable($hDatabase,"Identity","Id = 2 OR Id = 4") ; Delete Row In Id = 2 And Row In Id = 4 $hstmt = SelectRecordsGroup($hDatabase,"Identity","Id,Name,Age,Country") $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 10"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") MS_AccessDatabaseDisconnect($hDatabase) ;Disconnect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 11"," Error Is Number " & @error)) MS_AccessDatabaseCreate("pMSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 12"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("pMSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 13"," Error Is Number " & @error)) CreateTable($hDatabase,"Identity","Id INT PRIMARY KEY") if @error Then Exit(MsgBox(0,"ErrorMsg 14"," Error Is Number " & @error)) ColumnsAdd($hDatabase,"Identity","Name LONGCHAR") ; Add Name Column // Data Type CHAR Size 100 if @error Then Exit(MsgBox(0,"ErrorMsg 15"," Error Is Number " & @error)) ColumnsAdd($hDatabase,"Identity","Age INT") ; Add Age Column // Data Type INT if @error Then Exit(MsgBox(0,"ErrorMsg 16"," Error Is Number " & @error)) ColumnsAdd($hDatabase,"Identity","Country LONGCHAR") ; Add Country Column // Data Type CHAR Size 100 if @error Then Exit(MsgBox(0,"ErrorMsg 17"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","1,'Sword',10,'British'") if @error Then Exit(MsgBox(0,"ErrorMsg 18"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","2,'Knight',20,'Egypt'") if @error Then Exit(MsgBox(0,"ErrorMsg 19"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","3,'Fighter',30,'Japan'") if @error Then Exit(MsgBox(0,"ErrorMsg 20"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","4,'Lightning',40,'Turkey'") if @error Then Exit(MsgBox(0,"ErrorMsg 21"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity","Id,Name,Age,Country") $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 22"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") TableRemove($hDatabase,"Identity") ; Remove Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 23"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity") if (@error) Then MsgBox(0," Error Is Number " & @error,"Error Select Identity Table") Else MsgBox(0," Error Is Number " & @error,"Select Identity Table") EndIf MS_AccessDatabaseDisconnect($hDatabase) ;Disconnect pMSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 24"," Error Is Number " & @error))Example_EnumData.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2"," Error Is Number " & @error)) CreateTable($hDatabase,"Identity","Id INT PRIMARY KEY,Name LONGCHAR,Age INT,Country LONGCHAR,NULL_COL INT") if @error Then Exit(MsgBox(0,"ErrorMsg 3"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country,NULL_COL","1,'Sword',10,'British',NULL") if @error Then Exit(MsgBox(0,"ErrorMsg 4"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country,NULL_COL","2,'Knight',20,'Egypt',NULL") if @error Then Exit(MsgBox(0,"ErrorMsg 5"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country,NULL_COL","3,'Fighter',30,'Japan',NULL") if @error Then Exit(MsgBox(0,"ErrorMsg 6"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country,NULL_COL","4,'Lightning',40,'Turkey',NULL") if @error Then Exit(MsgBox(0,"ErrorMsg 7"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity","Id,Name,Age,Country,NULL_COL") ; Select Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 8"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt,False) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 9"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") EnumRecordsData($hstmt,"EnumRecDataProc") if @error Then Exit(MsgBox(0,"ErrorMsg 10"," Error Is Number " & @error)) MS_AccessDatabaseDisconnect($hDatabase) if @error Then Exit(MsgBox(0,"ErrorMsg 11"," Error Is Number " & @error)) Func EnumRecDataProc($IsNullValue,$Value,$ColName,$ColFormat,$ColMaxSize,$RowNum,$ColNum) ;return ;True ;Continue ;False ; Stop ;$RowNum // $ColNum : Start From One 1 ;$ColFormat : Data Taype ;NullValue Is Blank ("") Local $SQL_TYPE_DATE = 91 , $SQL_TYPE_TIME = 92 , $SQL_TYPE_TIMESTAMP = 93 Local $SQL_BIT = -7, $SQL_VARCHAR = 12, $SQL_LONGVARCHAR = -1, $SQL_BINARY = -2 Local $SQL_CHAR = 1,$SQL_VARBINARY = -3,$SQL_LONGVARBINARY = -4,$SQL_GUID = -11 Local $SQL_TINYINT = -6 , $SQL_INTEGER = 4 , $SQL_REAL = 7 , $SQL_DOUBLE = 8 Local $SQL_NUMERIC = 2 , $SQL_SMALLINT = 5 $MsgText = "Column Name Is " & $ColName & @CRLF $MsgText &= "Column Max Size Is " & $ColMaxSize & " byte" & @CRLF $MsgText &= "Column Data Type Is " & $ColFormat & @CRLF $MsgText &= "Column Number Is " & $ColNum & @CRLF $MsgText &= "Row Number Is " & $RowNum & @CRLF $MsgText &= "IsNullValue Is " & $IsNullValue & @CRLF $MsgText &= "Value Is " & $Value & @CRLF MsgBox(0,"EnumRecDataProc Msg",$MsgText) Switch $ColFormat Case $SQL_CHAR , $SQL_VARCHAR , $SQL_LONGVARCHAR ;CHAR String or NullValue // $IsNullValue Case $SQL_BINARY , $SQL_VARBINARY , $SQL_LONGVARBINARY ;BYTE Struct tag BYTE[$ColMaxSize] or NullValue // $IsNullValue Case $SQL_TYPE_DATE ;DATE Struct // tag "SHORT year;SHORT month;SHORT day" // or NullValue // $IsNullValue Case $SQL_TYPE_TIME ;TIME Struct // tag "SHORT hour;SHORT minute;SHORT second" // or NullValue // $IsNullValue Case $SQL_TYPE_TIMESTAMP ;TIMESTAMP Struct // tag "SHORT year;SHORT month;SHORT day;SHORT hour;SHORT minute;SHORT second" ; or NullValue // $IsNullValue Case $SQL_GUID ;GUID Struct // tag "ulong Data1;ushort Data2;ushort Data3;byte Data4[8]" ; or NullValue // $IsNullValue Case $SQL_TINYINT , $SQL_BIT ;BYTE Number or NullValue // $IsNullValue Case $SQL_INTEGER ;INT Number or NullValue // $IsNullValue Case $SQL_REAL ;float Number or NullValue // $IsNullValue Case $SQL_DOUBLE ;DOUBLE Number or NullValue // $IsNullValue Case $SQL_NUMERIC ;BYTE Struct tag BYTE[$ColMaxSize] or NullValue // $IsNullValue Case $SQL_SMALLINT ;SHORT Number or NullValue // $IsNullValue EndSwitch return True ;return ;True ;Continue ;False ; Stop EndFuncExample_Set_Insert.au3 expandcollapse popup#include <Array.au3> #include "MS_AccessDB.au3" MS_AccessDatabaseCreate("MSDataBase.mdb",0,True) if @error Then Exit(MsgBox(0,"ErrorMsg 1"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb") if @error Then Exit(MsgBox(0,"ErrorMsg 2"," Error Is Number " & @error)) Dim $SetColumnsList CreateTable($hDatabase,"Identity","Id INT PRIMARY KEY,Name LONGCHAR,Age INT,Country LONGCHAR ,NULL_COL INT") InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","1,'Sword',10,'British'") if @error Then Exit(MsgBox(0,"ErrorMsg 3"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","2,'Knight',20,'Egypt'") if @error Then Exit(MsgBox(0,"ErrorMsg 4"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","3,'Fighter',30,'Japan'") if @error Then Exit(MsgBox(0,"ErrorMsg 5"," Error Is Number " & @error)) InsertInToTable($hDatabase,"Identity","Id,Name,Age,Country","4,'Lightning',40,'Turkey'") if @error Then Exit(MsgBox(0,"ErrorMsg 6"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity") ; Select Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 7"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 8"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") MS_AccessDatabaseDisconnect($hDatabase) ; Disconnect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 9"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb","UserID","PassWord") ; Connect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 10"," Error Is Number " & @error)) $SetColumnsList = "Name = 'Thunder',Age = 40,Country = 'France'" UpdateTable($hDatabase,"Identity",$SetColumnsList,"Id = 1") if @error Then Exit(MsgBox(0,"ErrorMsg 11"," Error Is Number " & @error)) $SetColumnsList = "Name = 'Spear',Age = 30,Country = 'India'" UpdateTable($hDatabase,"Identity",$SetColumnsList,"Id = 2") if @error Then Exit(MsgBox(0,"ErrorMsg 12"," Error Is Number " & @error)) $SetColumnsList = "Name = 'Flood',Age = 20,Country = 'Korea'" UpdateTable($hDatabase,"Identity",$SetColumnsList,"Id = 3") if @error Then Exit(MsgBox(0,"ErrorMsg 13"," Error Is Number " & @error)) $SetColumnsList = "Name = 'Star',Age = 10,Country = 'Russia'" UpdateTable($hDatabase,"Identity",$SetColumnsList,"Id = 4") if @error Then Exit(MsgBox(0,"ErrorMsg 14"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"Identity") ; Select Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 15"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For Identity Table if @error Then Exit(MsgBox(0,"ErrorMsg 16"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"Identity Table") MS_AccessDatabaseDisconnect($hDatabase) ; Disconnect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 17"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb","UserID","PassWord") ; Connect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 18"," Error Is Number " & @error)) CreateTable($hDatabase,"iBinary","Id INT PRIMARY KEY,File LONGBINARY,iString LONGCHAR") ;Create iBinary Table And Three Columns Id , File And iStrinig if @error Then Exit(MsgBox(0,"ErrorMsg 19"," Error Is Number " & @error)) InsertInToTable($hDatabase,"iBinary","Id,File,iString","1," & SToB('One') & ",'One'") ;Insert In iBinary Table (Id = 1 ; File = SToB('One') ; iString = 'One') if @error Then Exit(MsgBox(0,"ErrorMsg 20"," Error Is Number " & @error)) InsertInToTable($hDatabase,"iBinary","Id,File,iString","2," & SToB('Tow') & ",'Two'") ;Insert In iBinary Table (Id = 2 ; File = SToB('Tow') ; iString = 'Two') if @error Then Exit(MsgBox(0,"ErrorMsg 21"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"iBinary") ; Select iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 22"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 23"," Error Is Number " & @error)) ;$ReturnArray[0][Column Number] = Column Name ;$ReturnArray[1][Column Number] = Column Max Size ;$ReturnArray[2][Column Number] = Column Data Type _ArrayDisplay($iReturnArray,"iBinary Table") MS_AccessDatabaseDisconnect($hDatabase) ; Disconnect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 24"," Error Is Number " & @error)) $hDatabase = MS_AccessDatabaseConnect("MSDataBase.mdb","UserID","PassWord") ; Connect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 25"," Error Is Number " & @error)) $SetColumnsList = "File = " & SToB('UPDATE One') & ",iString = 'UPDATE One'" UpdateTable($hDatabase,"iBinary",$SetColumnsList,"Id = 1") if @error Then Exit(MsgBox(0,"ErrorMsg 26"," Error Is Number " & @error)) $SetColumnsList = "File = " & SToB('UPDATE Tow') & ",iString = 'UPDATE Two'" UpdateTable($hDatabase,"iBinary",$SetColumnsList,"Id = 2") if @error Then Exit(MsgBox(0,"ErrorMsg 27"," Error Is Number " & @error)) $hstmt = SelectRecordsGroup($hDatabase,"iBinary") ; Select iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 28"," Error Is Number " & @error)) $iReturnArray = GetRecordsData($hstmt) ; Get Array Datat For iBinary Table if @error Then Exit(MsgBox(0,"ErrorMsg 29"," Error Is Number " & @error)) _ArrayDisplay($iReturnArray,"iBinary Table") MS_AccessDatabaseDisconnect($hDatabase) ; Disconnect MSDataBase.mdb if @error Then Exit(MsgBox(0,"ErrorMsg 30"," Error Is Number " & @error)) Func SToB($Str) Return StringToBinary($Str) EndFunc Edited February 4, 2014 by wolf9228 mLipok 1 ØµØ±Ø Ø§Ù„Ø³Ù…Ø§Ø¡ كان هنا  Link to comment Share on other sites More sharing options...
wolf9228 Posted February 4, 2014 Author Share Posted February 4, 2014 Modified Project ØµØ±Ø Ø§Ù„Ø³Ù…Ø§Ø¡ كان هنا  Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now