2006年04月24日 星期一 16:03
我照着chinaunix上的一个class来使用,没有密码的打开没问题,但是有密码的就不行。 请问是否是open()这里的参数设置不对?还是别的问题 #========================== #The MIT License #Emal:ghostwwl at gmail.com # edit by Ghostwwl #========================== #-*- coding:gb2312 -*- import win32com.client class accessdb: def __init__(self,dbpath,dbname,dbpw='QingDaoGxxx2002'): self.dbpath=dbpath self.dbname=dbname self.dbqw=dbpw self.db='Provider=Microsoft.Jet.OLEDB.4.0;Persist Security Info=False;Data Source=%s' % (dbpath+dbname+'.mdb') def open(self,sql): self.conn=win32com.client.Dispatch('ADODB.Connection') self.conn.Open(self.db,self.dbqw) //是否是这里的参数设置不对?self.dbqw是我加的. self.rs=win32com.client.Dispatch('ADODB.Recordset') self.sql=sql self.rs.Open('['+self.sql+']',self.conn,1,3) self.rs.MoveFirst() def printrcd(self): count=1 record={} while not self.rs.EOF: fields='' recd='' for i in range(self.rs.Fields.count): record[self.rs.Fields(i).Name]=self.rs.Fields.Item(i).Value #for m in flds.keys():fields=fields+m+'|' fields = '|'.join(record.keys()) #感谢limodou提供的方法 for n in record.values():recd=recd+unicode(n)+'|' #这个要unicode转换所以没用上面方法 print "====================================" print fields print recd print "第%s条记录:" % (count) count+=1 self.rs.MoveNext() self.conn.Close() def main(): print """ 此程序需要win32com模块 输入dbpath示例:c:/ or c:\\t 输入dbname示例:mark 输入dbtable示例:a 在输入dbname时不需要加.mdb直接输入数据库名 """ pth=raw_input("Enter the dbpath:") nam=raw_input("Enter the dbname:") #cfield=raw_input("模糊查询的条件字段:") #cval=raw_input("条件字段值:") 模糊查询 一直有问题 还是以后再改 mysql="select * from %s " %(raw_input("Enter the table name:")) db=accessdb(pth,nam) db.open(mysql) db.printrcd() if __name__=="__main__": main() -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060424/942b6532/attachment.html
2006年04月24日 星期一 16:29
在Provider串中加上Password应该可以: self.db='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s' % (dbpath+dbname+'.mdb'+';Jet OLEDB:Database Password='+dbpw) On 4/24/06, jason python.nbfan <python.nbfan at gmail.com> wrote: > 我照着chinaunix上的一个class来使用,没有密码的打开没问题,但是有密码的就不行。 > 请问是否是open()这里的参数设置不对?还是别的问题 > > > > #========================== > #The MIT License > #Emal:ghostwwl at gmail.com > # edit by Ghostwwl > #========================== > #-*- coding:gb2312 -*- > > import win32com.client > class accessdb: > def > __init__(self,dbpath,dbname,dbpw='QingDaoGxxx2002'): > self.dbpath=dbpath > self.dbname=dbname > self.dbqw=dbpw > self.db='Provider=Microsoft.Jet.OLEDB.4.0;Persist > Security Info=False;Data Source=%s' % (dbpath+dbname+'.mdb') > > def open(self,sql): > self.conn=win32com.client.Dispatch > ('ADODB.Connection') > self.conn.Open(self.db,self.dbqw) > //是否是这里的参数设置不对?self.dbqw是我加的. > self.rs=win32com.client.Dispatch('ADODB.Recordset') > self.sql=sql > self.rs.Open('['+self.sql+']',self.conn,1,3) > self.rs.MoveFirst() > > def printrcd(self): > count=1 > record={} > while not self.rs.EOF: > fields='' > recd='' > for i in range(self.rs.Fields.count): > record[self.rs.Fields(i).Name]=self.rs.Fields.Item(i).Value > #for m in flds.keys():fields=fields+m+'|' > fields = '|'.join( record.keys()) #感谢limodou提供的方法 > for n in record.values():recd=recd+unicode(n)+'|' > #这个要unicode转换所以没用上面方法 > print "====================================" > print fields > print recd > print "第%s条记录:" % (count) > count+=1 > self.rs.MoveNext() > self.conn.Close() > > def main(): > print """ > 此程序需要win32com模块 > 输入dbpath示例:c:/ or c:\\t > 输入dbname示例:mark > 输入dbtable示例:a > 在输入dbname时不需要加.mdb直接输入数据库名 > """ > pth=raw_input("Enter the dbpath:") > nam=raw_input("Enter the dbname:") > #cfield=raw_input("模糊查询的条件字段:") > #cval=raw_input("条件字段值:") 模糊查询 一直有问题 还是以后再改 > mysql="select * from %s " %(raw_input("Enter the table name:")) > db=accessdb(pth,nam) > db.open(mysql) > db.printrcd() > > if __name__=="__main__": > main() > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > -- ---------------------------------------- Lei zhenlin
2006年04月24日 星期一 18:31
多谢,问题已经解决,另外,请问哪里有python adodbapi2.01的中文参考, 最好有例子,我操作access数据库,ADO,和adodbapi那个好一点?谢谢 2006/4/24, lei zhenlin <ray8866 at gmail.com>: > > 在Provider串中加上Password应该可以: > > self.db='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s' % > (dbpath+dbname+'.mdb'+';Jet OLEDB:Database Password='+dbpw) > > On 4/24/06, jason python.nbfan <python.nbfan at gmail.com> wrote: > > 我照着chinaunix上的一个class来使用,没有密码的打开没问题,但是有密码的就不行。 > > 请问是否是open()这里的参数设置不对?还是别的问题 > > > > > > > > #========================== > > #The MIT License > > #Emal:ghostwwl at gmail.com > > # edit by Ghostwwl > > #========================== > > #-*- coding:gb2312 -*- > > > > import win32com.client > > class accessdb: > > def > > __init__(self,dbpath,dbname,dbpw='QingDaoGxxx2002'): > > self.dbpath=dbpath > > self.dbname=dbname > > self.dbqw=dbpw > > self.db='Provider=Microsoft.Jet.OLEDB.4.0;Persist > > Security Info=False;Data Source=%s' % (dbpath+dbname+'.mdb') > > > > def open(self,sql): > > self.conn=win32com.client.Dispatch > > ('ADODB.Connection') > > self.conn.Open(self.db,self.dbqw) > > //是否是这里的参数设置不对?self.dbqw是我加的. > > self.rs=win32com.client.Dispatch('ADODB.Recordset') > > self.sql=sql > > self.rs.Open('['+self.sql+']',self.conn,1,3) > > self.rs.MoveFirst() > > > > def printrcd(self): > > count=1 > > record={} > > while not self.rs.EOF: > > fields='' > > recd='' > > for i in range(self.rs.Fields.count): > > record[self.rs.Fields(i).Name]=self.rs.Fields.Item > (i).Value > > #for m in flds.keys():fields=fields+m+'|' > > fields = '|'.join( record.keys()) #感谢limodou提供的方法 > > for n in record.values():recd=recd+unicode(n)+'|' > > #这个要unicode转换所以没用上面方法 > > print "====================================" > > print fields > > print recd > > print "第%s条记录:" % (count) > > count+=1 > > self.rs.MoveNext() > > self.conn.Close() > > > > def main(): > > print """ > > 此程序需要win32com模块 > > 输入dbpath示例:c:/ or c:\\t > > 输入dbname示例:mark > > 输入dbtable示例:a > > 在输入dbname时不需要加.mdb直接输入数据库名 > > """ > > pth=raw_input("Enter the dbpath:") > > nam=raw_input("Enter the dbname:") > > #cfield=raw_input("模糊查询的条件字段:") > > #cval=raw_input("条件字段值:") 模糊查询 一直有问题 还是以后再改 > > mysql="select * from %s " %(raw_input("Enter the table name:")) > > db=accessdb(pth,nam) > > db.open(mysql) > > db.printrcd() > > > > if __name__=="__main__": > > main() > > > > _______________________________________________ > > python-chinese > > Post: send python-chinese at lists.python.cn > > Subscribe: send subscribe to > > python-chinese-request at lists.python.cn > > Unsubscribe: send unsubscribe to > > python-chinese-request at lists.python.cn > > Detail Info: > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > -- > ---------------------------------------- > Lei zhenlin > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to python-chinese-request at lists.python.cn > Detail Info: http://python.cn/mailman/listinfo/python-chinese > > -------------- next part -------------- An HTML attachment was scrubbed... URL: http://lists.exoweb.net/pipermail/python-chinese/attachments/20060424/840ec537/attachment.htm
2006年04月27日 星期四 10:55
没用过adodbapi On 4/24/06, jason python.nbfan <python.nbfan at gmail.com> wrote: > > 多谢,问题已经解决,另外,请问哪里有python > adodbapi2.01的中文参考,最好有例子,我操作access数据库,ADO,和adodbapi那个好一点?谢谢 > 2006/4/24, lei zhenlin <ray8866 at gmail.com>: > > 在Provider串中加上Password应该可以: > > > > self.db='Provider=Microsoft.Jet.OLEDB.4.0;Data Source=%s' > % > > (dbpath+dbname+'.mdb'+';Jet OLEDB:Database Password='+dbpw) > > > > On 4/24/06, jason python.nbfan < python.nbfan at gmail.com> wrote: > > > 我照着chinaunix上的一个class来使用,没有密码的打开没问题,但是有密码的就不行。 > > > 请问是否是open()这里的参数设置不对?还是别的问题 > > > > > > > > > > > > #========================== > > > #The MIT License > > > #Emal: ghostwwl at gmail.com > > > # edit by Ghostwwl > > > #========================== > > > #-*- coding:gb2312 -*- > > > > > > import win32com.client > > > class accessdb: > > > def > > > __init__(self,dbpath,dbname,dbpw='QingDaoGxxx2002'): > > > self.dbpath=dbpath > > > self.dbname=dbname > > > self.dbqw=dbpw > > > > self.db='Provider=Microsoft.Jet.OLEDB.4.0;Persist > > > Security Info=False;Data Source=%s' % (dbpath+dbname+'.mdb') > > > > > > def open(self,sql): > > > self.conn=win32com.client.Dispatch > > > ('ADODB.Connection') > > > self.conn.Open( self.db,self.dbqw) > > > //是否是这里的参数设置不对?self.dbqw是我加的. > > > > self.rs=win32com.client.Dispatch('ADODB.Recordset') > > > self.sql=sql > > > self.rs.Open('['+self.sql+']',self.conn ,1,3) > > > self.rs.MoveFirst() > > > > > > def printrcd(self): > > > count=1 > > > record={} > > > while not self.rs.EOF: > > > fields='' > > > recd='' > > > for i in range(self.rs.Fields.count): > > > > record[self.rs.Fields(i).Name]=self.rs.Fields.Item(i).Value > > > #for m in flds.keys():fields=fields+m+'|' > > > fields = '|'.join( record.keys()) #感谢limodou提供的方法 > > > for n in record.values():recd=recd+unicode(n)+'|' > > > #这个要unicode转换所以没用上面方法 > > > print > "====================================" > > > print fields > > > print recd > > > print "第%s条记录:" % (count) > > > count+=1 > > > self.rs.MoveNext() > > > self.conn.Close() > > > > > > def main(): > > > print """ > > > 此程序需要win32com模块 > > > 输入dbpath示例:c:/ or c:\\t > > > 输入dbname示例:mark > > > 输入dbtable示例:a > > > 在输入dbname时不需要加.mdb直接输入数据库名 > > > """ > > > pth=raw_input("Enter the dbpath:") > > > nam=raw_input("Enter the dbname:") > > > #cfield=raw_input("模糊查询的条件字段:") > > > #cval=raw_input("条件字段值:") 模糊查询 一直有问题 还是以后再改 > > > mysql="select * from %s " %(raw_input("Enter the table name:")) > > > db=accessdb(pth,nam) > > > db.open(mysql) > > > db.printrcd() > > > > > > if __name__=="__main__": > > > main() > > > > > > _______________________________________________ > > > python-chinese > > > Post: send python-chinese at lists.python.cn > > > Subscribe: send subscribe to > > > python-chinese-request at lists.python.cn > > > Unsubscribe: send unsubscribe to > > > python-chinese-request at lists.python.cn > > > Detail Info: > > > http://python.cn/mailman/listinfo/python-chinese > > > > > > > > > > > > -- > > ---------------------------------------- > > Lei zhenlin > > > > _______________________________________________ > > python-chinese > > Post: send python-chinese at lists.python.cn > > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > > > > > > _______________________________________________ > python-chinese > Post: send python-chinese at lists.python.cn > Subscribe: send subscribe to > python-chinese-request at lists.python.cn > Unsubscribe: send unsubscribe to > python-chinese-request at lists.python.cn > Detail Info: > http://python.cn/mailman/listinfo/python-chinese > > -- ---------------------------------------- Lei zhenlin
Zeuux © 2025
京ICP备05028076号