<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
       :: 首頁(yè) :: 新隨筆 ::  :: 聚合  :: 管理

    python with ADO 的幾點(diǎn)筆記

    Posted on 2008-02-28 21:45 pts 閱讀(2035) 評(píng)論(0)  編輯  收藏 所屬分類: DataBase 、Python
    1、幾個(gè)重要的ADO對(duì)象:
        首先
        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;
    (經(jīng)測(cè)試,如果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對(duì)象
                 cmd=Dispatch(r'ADODB.Command')
                 cmd對(duì)象的幾個(gè)屬性設(shè)置及可用屬性值:
                       CommandTyte:
    常量 說(shuō)明
    adCmdUnspecified -1 不指定命令類型的參數(shù)。
    adCmdText 1 按命令或存儲(chǔ)過(guò)程調(diào)用的文本定義計(jì)算 CommandText。
    adCmdTable 2 按表名計(jì)算 CommandText,該表的列全部是由內(nèi)部生成的 SQL 查詢返回的。
    adCmdStoredProc 4 按存儲(chǔ)過(guò)程名計(jì)算 CommandText
    adCmdUnknown 8 默認(rèn)值。指示 CommandText 屬性中命令的類型未知。
    adCmdFile 256 按持久存儲(chǔ)的 Recordset 的文件名計(jì)算 CommandText。
    adCmdTableDirect 512 按表名計(jì)算 CommandText,該表的列被全部返回。

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

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

    注意   ADO 目前不支持這種數(shù)據(jù)類型。使用它可能導(dǎo)致不可預(yù)料的結(jié)果。

    adInteger 3 指示一個(gè)四字節(jié)的有符號(hào)整數(shù) (DBTYPE_I4)。
    adIUnknown 13 指示指向 COM 對(duì)象上 IUnknown 接口的指針 (DBTYPE_IUNKNOWN)。

    注意   ADO 目前不支持這種數(shù)據(jù)類型。使用它可能導(dǎo)致不可預(yù)料的結(jié)果。

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

    注意   ADO 目前不支持這種數(shù)據(jù)類型。使用它可能導(dǎo)致不可預(yù)料的結(jié)果。

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

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

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

    主站蜘蛛池模板: 亚洲精品无码专区2| 波多野结衣在线免费观看| 鲁啊鲁在线视频免费播放| 亚洲a∨无码一区二区| 日韩亚洲翔田千里在线| 久久久久国产免费| 日韩精品成人无码专区免费| 日韩亚洲国产二区| 久久夜色精品国产亚洲AV动态图| 久久99亚洲网美利坚合众国 | 亚洲欧洲免费视频| 亚洲第一成年免费网站| 岛国精品一区免费视频在线观看| 30岁的女人韩剧免费观看| 国产麻豆剧传媒精品国产免费| 亚洲精品乱码久久久久久自慰| 最新国产精品亚洲| 久久国产精品免费观看| 免费人成在线观看视频播放| 久久亚洲国产精品成人AV秋霞| 久久国产美女免费观看精品| 午夜视频在线观看免费完整版| 亚洲国产精品自在线一区二区| 免费福利视频导航| 亚洲国产精品第一区二区| 国产精彩免费视频| 久久精品国产亚洲AV天海翼| 亚洲午夜无码片在线观看影院猛| 亚洲成熟丰满熟妇高潮XXXXX| 亚洲成a人片在线观看老师| 国产综合激情在线亚洲第一页| 国产香蕉九九久久精品免费| 国产精品亚洲专区无码唯爱网| 自拍偷自拍亚洲精品第1页| 曰批全过程免费视频免费看| 在线观看免费大黄网站| 日韩精品无码免费专区午夜| 久久影视国产亚洲| 手机看片国产免费永久| 亚洲熟妇丰满多毛XXXX| 国产高清对白在线观看免费91|