<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 閱讀(2039) 評(píng)論(0)  編輯  收藏 所屬分類: DataBasePython
    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ì)象使用相同的鎖定類型。

    主站蜘蛛池模板: 亚洲人6666成人观看| 日本亚洲免费无线码 | 久久久国产精品亚洲一区| 午夜不卡AV免费| 又爽又高潮的BB视频免费看| 国产成人精品久久亚洲| 亚洲爆乳精品无码一区二区三区| 亚洲精品自产拍在线观看| 亚洲AV无码专区在线亚| 国产男女爽爽爽爽爽免费视频| 亚洲高清无在码在线无弹窗| 日韩大片免费观看视频播放| 午夜亚洲福利在线老司机| 精品亚洲成a人片在线观看| 亚洲a一级免费视频| 久久久www成人免费毛片| 亚洲精品国产精品乱码不卡| 免费手机在线看片| 亚洲色偷拍另类无码专区| 亚洲精品国产综合久久久久紧| 亚洲精品免费在线观看| 亚洲综合久久成人69| 中文在线观看国语高清免费| 好爽…又高潮了免费毛片| 国产成人va亚洲电影| 久久精品国产精品亚洲精品| 67pao强力打造高清免费| 77777亚洲午夜久久多喷| 免费在线观看h片| 婷婷久久久亚洲欧洲日产国码AV| 三级片免费观看久久| 亚洲av中文无码乱人伦在线播放| 5555在线播放免费播放| 久久久久亚洲精品无码网址色欲 | 亚洲精品国产高清嫩草影院| 你懂的免费在线观看网站| 亚洲午夜无码久久久久软件 | 亚洲国产另类久久久精品黑人| 久久精品无码专区免费东京热| 亚洲精品无码国产片| 成年女人喷潮毛片免费播放|