<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    海上月明

    editer by sun
    posts - 162, comments - 51, trackbacks - 0, articles - 8
       :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理

    python with ADO 的幾點筆記

    Posted on 2008-02-28 21:45 pts 閱讀(2034) 評論(0)  編輯  收藏 所屬分類: DataBasePython
    1、幾個重要的ADO對象:
        首先
        from win32com.client import Dispatch
        1.1、connection:
                    conn=Dispatch(r‘ADODB.Connection')
                    conn.ConnectionString可用值
                    conn.Open()
    Database Engine ConnectionString
    DBASE (using ODBC) Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=C:\path\to\database
    Excel (using ODBC) Driver={Microsoft Excel Driver (*.xls)};DriverID=790;Dbq=C:\path\to\spreadsheet;DefaultDir=C:\path\to\defaultdir
    Excel (using OLE DB) Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Path\To\sheet.xls;
    Access (using ODBC) Driver={Microsoft Access Driver (*.mdb)};Dbq=C:\path\to\database.mdb;Uid=username;Pwd=password

    You can also pass additional options -- for example Exclusive=1; sets it to be opened in exclusive mode.
    Access (using OLE DB) Using standard security
    PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\database.mdb;User Id=username;Password=somepassword;
    (經測試,如果Access加密了,使用下面的connstring可以成功連接:
    PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=C:\path\to\database.mdb;Jet OLEDB:Databse Password=pwd;
    )
    Using Workgroup security
    str="Provider=Microsoft.Jet.OLEDB.4.0;DataSource=database.mdb;JET OLEDB:System Database=mysystem.mdw;"
    oConn.Open(str, "my_user_name", "my_password")
    Firebird Remote Database
    Provider='LCPI.IBProvider';Data Source='remotehost:C:\path\to\database.fdb';User ID='username';Password='pwd';Auto Commit=true;

    The above is reported to work for a Firebird database by Edward Diamond (ediamond at water dot ca dot gov). I would presume that it could work on a local Firebird server, simply by removing "remotehost" from the string above. Edward reports that even simple queries don't work without the "Auto Commit" part in the connection string.
    MySQL (using ODBC) Local Database
    Driver={MySQL ODBC 3.51 Driver};Server=localhost;User=username;Password=mypassword;Database=mydatabase;

    Remote Database
    Driver={MySQL ODBC 3.51 Driver};Server=192.168.1.100;Port=3306;User=username;Password=mypassword;Database=mydatabase;

    There are more parameters that can be set (for example, Option, which controls several connection properties such as logging, packet size limits etc.) See section 3.3 (Connection Parameters) of the MyODBC manual for more information.
    MySQL (using OLE DB) Provider=MySQLProv;Server=192.168.1.100;Port=3306;User=username;Password=mypassword;Database=mydatabase;

    If you have the datasource already set up:
    Provider=MySQLProv;Data Source=name_of_datasource;

    You will need to download and install MyOleDB first. Last time I checked MyOLEDB was no longer maintained.
    Oracle (using ODBC) Driver={Microsoft ODBC for Oracle};Server=MyOracleServer;Uid=username;Pwd=password

    See the MSDN library for additional options.
    Oracle (using OLE DB) Using OLE DB provider from Microsoft
    Provider=MSDAORA;Data Source=MyOracleDB;User Id=username;Password=password
    See the MSDN library for additional options.

    Using OLE DB provider from Oracle
    Provider=OraOLEDB.Oracle;Data Source=MyOracleDB;User Id=username;Password=password
    SQL Server (using ODBC) Standard Security
    Driver={SQL Server};Server=192.168.1.100;Uid=username;Pwd=password;Database=dbname;

    Trusted Connection
    Simply add Trusted_Connection=yes to the above string.

    See MSDN Library for more options.
    SQL Server (using OLE DB) Provider=SQLOLEDB.1;Data Source=192.168.1.100;Uid=username;Pwd=password;Database=dbname;

    See MSDN Library for more options.
       
           1.2、command對象
                 cmd=Dispatch(r'ADODB.Command')
                 cmd對象的幾個屬性設置及可用屬性值:
                       CommandTyte:
    常量 說明
    adCmdUnspecified -1 不指定命令類型的參數。
    adCmdText 1 按命令或存儲過程調用的文本定義計算 CommandText。
    adCmdTable 2 按表名計算 CommandText,該表的列全部是由內部生成的 SQL 查詢返回的。
    adCmdStoredProc 4 按存儲過程名計算 CommandText
    adCmdUnknown 8 默認值。指示 CommandText 屬性中命令的類型未知。
    adCmdFile 256 按持久存儲的 Recordset 的文件名計算 CommandText
    adCmdTableDirect 512 按表名計算 CommandText,該表的列被全部返回。

                      CommandText:定義命令(例如 SQL 語句)的可執行文本
                      Prepared:Prepared 屬性將提供者保存為查詢的已準備好(或已編譯)版本,該查詢是第一次執行 Command對象前在CommandText屬性中指定的。這可能會降低命令第一次執行的速度,但一旦提供者編譯一個命令后,便可將命令的編譯版本用于所有后續的執行中,這樣便可提高性能。 如果該屬性為 False,提供者將直接執行 Command 對象而不創建編譯版本。如果提供者不支持命令準備,則一旦將此屬性設置為 True,提供者便可能返回錯誤。如果它不返回錯誤,則僅忽略準備命令的請求,并將 Prepared 屬性設置為 False。  
                     CommandTimeout: 屬性設置提供者等待命令執行的秒數

           1.3、Parameter對象
                 para1=cmd.CreateParameter(Name, Type, Direction, Size, Value
                           Name   可選。String 值,包含 Parameter 對象的名稱。
                           Type   可選。DataTypeEnum 值,指定 Parameter 對象的數據類型。
                           Direction   可選。ParameterDirectionEnum 值,指定 Parameter 對象的類型。
                           Size   可選。Long 值,指定參數值的最大長度(以字符或字節為單位)。
                           Value   可選。Variant,指定 Parameter 對象的值。
                               DataTypeEnum 可用值:
    常量 說明
    AdArray
    (不適用于 ADOX。)
    0x2000 一個標志值,通常與另一個數據類型常量組合,指示該數據類型的數組。
    adBigInt 20 指示一個八字節的有符號整數 (DBTYPE_I8)。
    adBinary 128 指示一個二進制值 (DBTYPE_BYTES)。
    adBoolean 11 指示一個布爾值 (DBTYPE_BOOL)。
    adBSTR 8 指示以 Null 終止的字符串 (Unicode) (DBTYPE_BSTR)。
    adChapter 136 指示一個四字節的子集值,標識子行集合中的行 (DBTYPE_HCHAPTER)。
    adChar 129 指示一個字符串值 (DBTYPE_STR)。
    adCurrency 6 指示一個貨幣值 (DBTYPE_CY)。貨幣是一個定點數字,小數點右側有四位數字。該值存儲為八字節、范圍為 10,000 的有符號整數。
    adDate 7 指示日期值 (DBTYPE_DATE)。日期保存為雙精度數,數字的整數部分是從 1899 年 12 月 30 日算起的天數,小數部分是一天當中的片段時間。
    adDBDate 133 指示日期值 (yyyymmdd) (DBTYPE_DBDATE)。
    adDBTime 134 指示時間值 (hhmmss) (DBTYPE_DBTIME)。
    adDBTimeStamp 135 指示日期/時間戳(yyyymmddhhmmss 加十億分之一的小數)(DBTYPE_DBTIMESTAMP)。
    adDecimal 14 指示具有固定精度和范圍的確切數字值 (DBTYPE_DECIMAL)。
    adDouble 5 指示一個雙精度浮點值 (DBTYPE_R8)。
    adEmpty 0 指定沒有值 (DBTYPE_EMPTY)。
    adError 10 指示一個 32 位的錯誤代碼 (DBTYPE_ERROR)。
    adFileTime 64 指示一個 64 位的值,表示從 1601 年 1 月 1 日開始的 100 個十億分之一秒間隔的數量 (DBTYPE_FILETIME)。
    adGUID 72 指示全局唯一標識符 (GUID) (DBTYPE_GUID)。
    adIDispatch 9 指示指向 COM 對象上 IDispatch 接口的指針 (DBTYPE_IDISPATCH)。

    注意   ADO 目前不支持這種數據類型。使用它可能導致不可預料的結果。

    adInteger 3 指示一個四字節的有符號整數 (DBTYPE_I4)。
    adIUnknown 13 指示指向 COM 對象上 IUnknown 接口的指針 (DBTYPE_IUNKNOWN)。

    注意   ADO 目前不支持這種數據類型。使用它可能導致不可預料的結果。

    adLongVarBinary 205 指示一個長二進制值(僅限于 Parameter 對象)。
    adLongVarChar 201 指示一個長字符串值(僅限于 Parameter 對象)。
    adLongVarWChar 203 指示一個以 Null 終止的長 Unicode 字符串值(僅限于 Parameter 對象)。
    adNumeric 131 指示具有固定精度和范圍的確切數字值 (DBTYPE_NUMERIC)。
    adPropVariant 138 指示一個 Automation PROPVARIANT (DBTYPE_PROP_VARIANT)。
    adSingle 4 指示一個單精度浮點值 (DBTYPE_R4)。
    adSmallInt 2 指示一個雙字節的有符號整數 (DBTYPE_I2)。
    adTinyInt 16 指示一個單字節的有符號整數 (DBTYPE_I1)。
    adUnsignedBigInt 21 指示一個八字節的無符號整數 (DBTYPE_UI8)。
    adUnsignedInt 19 指示一個四字節的無符號整數 (DBTYPE_UI4)。
    adUnsignedSmallInt 18 指示一個雙字節的無符號整數 (DBTYPE_UI2)。
    adUnsignedTinyInt 17 指示一個單字節的無符號整數 (DBTYPE_UI1)。
    adUserDefined 132 指示一個用戶定義的變量 (DBTYPE_UDT)。
    adVarBinary 204 指示一個二進制值(僅限于 Parameter 對象)。
    adVarChar 200 指示一個字符串值(僅限于 Parameter 對象)。
    adVariant 12 指示一個 Automation Variant (DBTYPE_VARIANT)。

    注意   ADO 目前不支持這種數據類型。使用它可能導致不可預料的結果。

    adVarNumeric 139 指示一個數字值(僅限于 Parameter 對象)。
    adVarWChar 202 指示一個以 Null 終止的 Unicode 字符串(僅限于 Parameter 對象)。
    adWChar 130 指示一個以 Null 終止的 Unicode 字符串 (DBTYPE_WSTR)。

                                    ParameterDirectionEnum可用值:
    常量 說明
    adParamInput 1 默認值。指示該參數是輸入參數。
    adParamInputOutput 3 指示該參數既是輸入參數,又是輸出參數。
    adParamOutput 2 指示該參數是輸出參數。
    adParamReturnValue 4 指示該參數是返回值。
    adParamUnknown 0 指示該參數的方向未知。
                         
                          設定好后加入到cmd的parameters中:
                              cmd.Parameters.Append(para1)
                          設定para1的值:
                              para1.Value=***
                          執行cmd:
                             (rst,result)=cmd.Execute()
                            
                 1.4、recordset對象:
                          rst=Dispatch(r'ADODB.Recordset')
                          rst對象在Open前可設置游標類型:
            • 動態游標 adOpenDynamic— 用于查看其他用戶所作的添加、更改和刪除;用于 Recordset(不依賴于書簽)中的所有移動類型;如果提供者支持,還可用于書簽。
            • 鍵集游標 adOpenKeyset — 其行為類似動態游標,不同的只是它禁止查看其他用戶添加的記錄,并且禁止訪問其他用戶刪除的記錄。其他用戶所作的數據更改依然可見。它始終支持書簽,因此允許 Recordset 中的所有移動類型。  
            • 靜態游標 adOpenStatic— 提供記錄集的靜態副本,可用來查找數據或生成報告;它始終支持書簽,因此允許 Recordset 中的所有移動類型。其他用戶所作的添加、更改或刪除將不可見。當打開客戶端 Recordset 對象時,這是唯一允許的游標類型。
            • 僅向前游標 adOpenForwardOnly— 只允許在 Recordset 中向前滾動。其他用戶所作的添加、更改或刪除將不可見。當只需要對 Recordset 進行一次傳遞時,可以提高性能。
                                具體游標值為:
    adOpenDynamic 2 使用動態游標。其他用戶所作的添加、更改或刪除均可見,而且允許 Recordset 中的所有移動類型(如果提供者不支持書簽,則書簽除外)。
    adOpenForwardOnly 0 默認值。使用僅向前游標。除了在記錄中只能向前滾動外,與靜態游標相同。當只需要在 Recordset 中進行一個傳遞時,用它可提高性能。
    adOpenKeyset 1 使用鍵集游標。盡管從您的 Recordset 不能訪問其他用戶刪除的記錄,但除無法查看其他用戶添加的記錄外,它和動態游標相似。其他用戶所作的數據更改依然可見。
    adOpenStatic 3 使用靜態游標。一組記錄的靜態副本,可用于查找數據或生成報告。其他用戶所作的添加、更改或刪除不可見。
    adOpenUnspecified -1 不指定游標類型。

                    rst.Open(Source, ActiveConnection, CursorType, LockType, Options
                          參數值全部可選。
                          CursorType上面已經說明
                          LockType的可選值:
    常量 說明
    adLockBatchOptimistic 4 指示開放式批更新。需要批更新模式。
    adLockOptimistic 3 指示逐個記錄開放式鎖定。提供者使用開放式鎖定,僅在調用 Update 方法時鎖定記錄。
    adLockPessimistic 2 指示逐個記錄保守式鎖定。提供者要確保記錄編輯成功,通常在編輯之后立即在數據源鎖定記錄。
    adLockReadOnly 1 默認值。指示只讀記錄。無法改變數據。
    adLockUnspecified -1 未指定鎖定類型。創建副本時,副本與源對象使用相同的鎖定類型。

    主站蜘蛛池模板: 情侣视频精品免费的国产| 久久免费国产精品| 亚洲日韩精品无码专区加勒比☆ | 水蜜桃视频在线观看免费播放高清| 色偷偷亚洲第一综合| 久久亚洲精品无码gv| 亚洲中文字幕无码爆乳app| 国产成人亚洲精品| 亚洲第一男人天堂| 亚洲中文字幕乱码AV波多JI| 亚洲码欧美码一区二区三区| 亚洲av日韩av无码av| 国产AV旡码专区亚洲AV苍井空| 亚洲人成综合网站7777香蕉| 亚洲色大成网站www| 亚洲自偷自偷在线成人网站传媒| 最新亚洲精品国偷自产在线| 亚洲精品国产suv一区88| 国产精品亚洲二区在线| 无码精品人妻一区二区三区免费| 一级一级一片免费高清| 美女无遮挡拍拍拍免费视频| 国产精品hd免费观看| 国产亚洲免费的视频看| 95免费观看体验区视频| 久久天天躁狠狠躁夜夜免费观看| 大陆一级毛片免费视频观看 | 免费av片在线观看网站| 久久ww精品w免费人成| 美女视频黄的全免费视频网站| 成人片黄网站色大片免费| 国产一级淫片a视频免费观看| 亚洲精品456播放| 亚洲国产精品成人精品无码区 | 久久亚洲中文字幕精品一区| 亚洲va中文字幕无码久久| 亚洲国产精品日韩在线观看| 亚洲欧洲无码一区二区三区| 男人扒开添女人下部免费视频| 国产情侣久久久久aⅴ免费 | 一本一道dvd在线观看免费视频 |