首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在叉内使用sqlanydb启动数据库连接

在叉内使用sqlanydb启动数据库连接
EN

Stack Overflow用户
提问于 2014-04-02 12:43:33
回答 3查看 3.2K关注 0票数 2

基于一个分叉的例子,我构建了这个小脚本:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-

import sqlanydb
import os

def child():
    conn = sqlanydb.connect(uid='dba', pwd='sql', eng='somedb_IQ', dbn='somedb')
    curs = conn.cursor()
    curs.execute("""SELECT * FROM foobaa;""")
    os.exit(0)

def parent():
   while True:
      newpid = os.fork()
      if newpid == 0:
         child()
      else:
         pids = (os.getpid(), newpid)
         print "parent: %d, child: %d" % pids
      if raw_input( ) == 'q': break

parent()

这样做的目的是在单独的进程中执行数据库操作(以后的大目标是同时运行大量的查询)。

但是在运行脚本时,我得到的是:

代码语言:javascript
复制
parent: 20580, child: 20587
Traceback (most recent call last):
  File "connectiontest.py", line 25, in <module>
    parent()
  File "connectiontest.py", line 19, in parent
    child()
  File "connectiontest.py", line 8, in child
    conn = sqlanydb.connect(uid='dba', pwd='sql', eng='somedb_IQ', dbn='somedb')
  File "/usr/local/lib/python2.6/dist-packages/sqlanydb.py", line 461, in connect
    return Connection(args, kwargs)
  File "/usr/local/lib/python2.6/dist-packages/sqlanydb.py", line 510, in __init__
    self.handleerror(*error)
  File "/usr/local/lib/python2.6/dist-packages/sqlanydb.py", line 520, in handleerror
    eh(self, None, errorclass, errorvalue)
  File "/usr/local/lib/python2.6/dist-packages/sqlanydb.py", line 342, in standardErrorHandler
    raise errorclass(errorvalue)
sqlanydb.OperationalError: Failed to initialize connection object

我可能错过了什么?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-06-26 11:17:03

这个问题似乎不是通过将import sqlanydb迁移到子()-methode中发生的。所以它看起来就像:

代码语言:javascript
复制
def child():
    import sqlanydb

    conn = sqlanydb.connect(uid='dba', pwd='sql', dsn='some_db')
    curs = conn.cursor()
    curs.execute("""SELECT * FROM SA100_1_1;""")
    curs.close()
    conn.close()
票数 1
EN

Stack Overflow用户

发布于 2014-04-03 01:13:51

由于Sybase IQ是基于Sybase ASA的,您确定您使用了正确的密钥来获取凭据吗?这个(尽管是旧的)文档看起来需要DSN和DSF,而不是ENG和DBN。

en11/python-writing-open.html

票数 1
EN

Stack Overflow用户

发布于 2014-05-27 16:15:02

您需要对sqlanydb源代码进行黑客攻击,以输出所看到的实际错误。不管问题是什么,都是由一个通用的OperationalError掩盖的,它没有提供足够的信息来解决这个问题。行510是您需要添加几个prints的地方,以确定发生了什么(而不是)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22811894

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档