configuring ODBC DSN with a python script

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • test test

    configuring ODBC DSN with a python script





    Hello Python user,



    I've read your mail and analysed the problem. The testing i've done was with windows xp pro.



    First thin i have seen, was that you tried to open an existing registry key with wreg.OpenKey. You must only open only a key with with this command i've you want to read the key, i've you want to write to the key always use wreg.CreateKey.



    Below here you will find the most part of youre send code. The code in red is new code, en de code in bleu is changed code.



    Hope you can use this code.



    Sincerly,



    C.R. Groenveld



    The Netherlands



     



     



    #import mx.ODBC.Windows



    import _winreg as wreg



    class access_interfac e:



    def __init__(self):



    self.dsn_name=" test2"



    self.dbq="C:\\p rog\\ontwikkel\ \test\\db1.mdb"



    self.driver_pat h="C:\\WINDOWS\ \System32\\odbc jt32.dll"



    self.driver_id= 25



    self.fil="MS Access;"



    self.safe_trans actions=0



    self.uid=""







    self.implicit_c ommit_sync=""



    self.max_buffer _size=2048



    self.page_timeo ut=5



    self.threads=3



    self.user_commi t_sync="Yes"







    self.dsn_reg_ke y=None



    self.dsn_keynam e="Software\\OD BC\\ODBC.INI\\% s" %(self.dsn_name )







    self.engine_reg _key=None



    self.engine_key name="Software\ \ODBC\\ODBC.INI \\%s\\Engines\\ Jet" %(self.dsn_name )







    self.ODBC_reg_k ey=None



    self.ODBC_keyna me="Software\\O DBC\\ODBC.INI\\ ODBC Data Sources"



    print self.ODBC_keyna me







    def createDSN(self) :



    # try:



    # self.dsn_reg_ke y=wreg.OpenKey( wreg.HKEY_LOCAL _MACHINE,self.d sn_keyname,1)



    # except:



    self.dsn_reg_ke y=wreg.CreateKe y(wreg.HKEY_LOC AL_MACHINE,self .dsn_keyname)



    # try:



    # self.engine_reg _key=wreg.OpenK ey(wreg.HKEY_LO CAL_MACHINE,sel f.engine_keynam e,1)



    # except:



    self.engine_reg _key=wreg.Creat eKey(wreg.HKEY_ LOCAL_MACHINE,s elf.engine_keyn ame)



    # try:



    # self.ODBC_reg_k ey=wreg.OpenKey (wreg.HKEY_LOCA L_MACHINE,self. ODBC_keyname,1)



    # except:



    self.ODBC_reg_k ey=wreg.CreateK ey(wreg.HKEY_LO CAL_MACHINE,sel f.ODBC_keyname)







    if self.dsn_reg_ke y!=None and self.engine_reg _key!=None and self.ODBC_reg_k ey!=None:



    self.setRegSZ(s elf.dsn_reg_key ,"DBQ",self.dbq )



    self.setRegSZ(s elf.dsn_reg_key ,"Driver",self. driver_path)



    self.setRegDWOR D(self.dsn_reg_ key,"DriverId", self.driver_id)



    self.setRegSZ(s elf.dsn_reg_key ,"FIL",self.fil )



    self.setRegDWOR D(self.dsn_reg_ key,"SafeTransa ctions",self.sa fe_transactions )



    self.setRegSZ(s elf.dsn_reg_key ,"UID",self.uid )



    wreg.CloseKey(s elf.dsn_reg_key )







    self.setRegSZ(s elf.engine_reg_ key,"ImplicitCo mmitSync",self. implicit_commit _sync)



    self.setRegDWOR D(self.engine_r eg_key,"MaxBuff erSize",self.ma x_buffer_size)



    self.setRegDWOR D(self.engine_r eg_key,"PageTim eout",self.page _timeout)



    self.setRegDWOR D(self.engine_r eg_key,"Threads ",self.thre ads)



    self.setRegSZ(s elf.engine_reg_ key,"UserCommit Sync",self.user _commit_sync)



    wreg.CloseKey(s elf.engine_reg_ key)



    self.setRegSZ(s elf.ODBC_reg_ke y,self.dsn_name , "Microsoft Access Driver (*.mdb)")



    wreg.CloseKey(s elf.ODBC_reg_ke y)







    def setRegSZ(self,r eg_key,reg_name ,reg_value):



    print reg_key



    print reg_name



    print reg_value



    wreg.SetValueEx (reg_key,reg_na me,0,wreg.REG_S Z,reg_value)







    def setRegDWORD(sel f,reg_key,reg_n ame,reg_value):



    wreg.SetValueEx (reg_key,reg_na me,0,wreg.REG_D WORD,reg_value)







    def getCursor(self) :



    db=mx.ODBC.Wind ows.DriverConne ct('DSN=test2;U ID=user;PWD=pas swd')



    c=db.cursor()



    return c







    def getRows(self):



    c=self.getCurso r()



    c.execute('sele ct * from puke')



    mx.ODBC.print_r esultset(c)







    if __name__=="__ma in__":



    ai=access_inter face()



    ai.createDSN()



    ai.getRows()




    Ontvang je Hotmail & Messenger berichten op je mobiele telefoon met Hotmail SMS klik hier
Working...