我在Access中通过ODBC访问Oracle数据库时遇到问题,希望有人有一些建议.我花了很多时间试图找到解决方案,但没有任何有用的东西出现.
我在ODBC中有一个访问Oracle 9数据库的连接设置.我可以在ODBC管理员上使用Test选项并收到Test Successful消息.我也可以使用SQL*PLUS连接到数据库.但是,当我尝试在Access 2007中创建一个新的链接表并使用ODBC选项时,我尝试连接时出现以下错误:
ODBC--Call failed.
[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve service name (#12154)[Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed IM006 0 [Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed (#0)
ODBC--Call failed.
[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve service name
(#12154)[Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed IM006 0 [Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed (#0)
ODBC--Call failed.
[Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve service name (#12154)[Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed IM006 0 [Microsoft][ODBC Driver Manager]Driver's SQLSetConnectAttr failed (#0)
我知道TNS查找工作正常,因为ODBC Admin工具和tnsping一样工作.问题是,为什么它在Access之外工作但Access无法做到?
编辑(2012-02-22 15:05):刚尝试在不同的PC上发生同样的事情,虽然另一个用户登录并且连接适用于他们,所以它似乎链接到我的WinXP配置文件.这对你有帮助吗?
任何建议将不胜感激.
BBZ
我想知道为什么在基类中定义并从派生类访问的字典显然只存在于一个内存位置.一个简短的例子:
class BaseClass:
_testdict = dict()
_testint = 0
def add_dict_entry(self):
self._testdict["first"] = 1
def increment(self):
self._testint += 1
class Class1(BaseClass):
pass
class Class2(BaseClass):
pass
object1 = Class1()
object2 = Class2()
object1.add_dict_entry()
object1.increment()
print(object2._testdict)
print(object2._testint)
Run Code Online (Sandbox Code Playgroud)
输出是:
{'first': 1}
0
Run Code Online (Sandbox Code Playgroud)
为什么对object1的"add_dict_entry"的调用会影响object2的字典?使用整数("增量"),基类变量不受影响.
非常感谢.
洛伦茨
我正在尝试构建一个将与我们的业务QuickBooks Online帐户进行通信的Web应用程序。我发现的大多数研究都说,对于开发和测试,请使用“桌面”连接方式(以避免证书麻烦)。因此,我已经注册了一个应用,并从此处获得了ID:
appreg.intuit.com/
Run Code Online (Sandbox Code Playgroud)
问题是,我见过的每个地方都告诉我,然后去这里获得连接票
login.ptc.quickbooks.com/j/qbn/sdkapp/confirm?serviceid=2004&appid=YOUR-APPLICATION-ID-HERE
Run Code Online (Sandbox Code Playgroud)
但是,当我这样做时,它会将我重定向到此处
qbo.intuit.com/c1/v60.147/0/login?redirect=true
Run Code Online (Sandbox Code Playgroud)
我摸索着,终于找到一种方法来访问“旧的”快速书籍,当我去建立一家测试公司时,它把我送到了这里
ptc.qbo.intuit.com/c1/v0/offline.shtml
Run Code Online (Sandbox Code Playgroud)
告诉我
“ QBO PTC环境不再可用,已被新的E2E环境取代。请继续访问https://e2e.qbo.intuit.com/。对于给您带来的不便和混乱,我们深表歉意。如果您有问题,请联系埃里克·布伦(Eric Bullen)”
如何获得与测试帐户的连接以进行某些开发?
我希望能够传递对函数的可变引用,但捕获可能来自该函数的展开。目的是用于编写一些测试包装器(设置、拆卸),而不是一般的错误处理。
如果我使用典型的同步代码,我可以让它编译并工作......
struct MyStruct {
n: u32
}
fn my_func(s: &mut MyStruct) {
s.n += 1;
panic!("Oh no!");
}
fn main() {
let mut ctx = MyStruct { n: 1 };
let mut wrapper = std::panic::AssertUnwindSafe(&mut ctx);
let result = std::panic::catch_unwind(move || {
my_func(*wrapper);
});
// Do some cleanup of `ctx` here.
if let Err(err) = result {
std::panic::resume_unwind(err);
}
}
Run Code Online (Sandbox Code Playgroud)
但是,我无法弄清楚如何使用 futures 和 async/await 来做到这一点。在这种情况下,我将尝试调用已声明为异步的函数。我尝试过各种方法,例如下面的代码:
async fn run_async(s: &mut MyStruct) {
s.n += 1;
panic!("Oh no!");
}
#[tokio::main]
async …Run Code Online (Sandbox Code Playgroud) 我正在尝试使用Flask-KVSession作为Flask网站的替代会话实现.我已经创建了一个测试网站(参见下面的代码1).当我运行它时,我可以使用浏览器通过在我的Web浏览器中的各种资源之间导航来将值存储到会话中.这工作正常.此外,当我查看sessions生成的SQLite数据库中的表时,我看到一条记录用于整个时间存储此会话.
然后我尝试添加Flask-Security(参见下面的代码2).运行此站点后(确保首先删除现有的test.db sqlite文件),我被带到登录提示符并登录.然后我继续做同样的事情,在资源之间来回跳转.我得到了相同的结果.
问题是,当我查看sqlitebrowser sessions表时,有8条记录.事实证明,为所做的每个请求创建了一个新的会话记录.
为什么在使用Flask-Security时会为每个请求创建新的会话记录?为什么现有会话不像以前那样更新?
代码1(没有Flask-Security的KVSession)
import os
from flask import Flask, session
app = Flask(__name__)
app.secret_key = os.urandom(64)
#############
# SQLAlchemy
#############
from flask.ext.sqlalchemy import SQLAlchemy
db = SQLAlchemy(app)
DB_DIR = os.path.dirname(os.path.abspath(__file__))
DB_URI = 'sqlite:////{0}/test.db'.format(DB_DIR)
app.config['SQLALCHEMY_DATABASE_URI'] = DB_URI
@app.before_first_request
def create_user():
db.create_all()
############
# KVSession
############
from simplekv.db.sql import SQLAlchemyStore
from flask.ext.kvsession import KVSessionExtension
store = SQLAlchemyStore(db.engine, db.metadata, 'sessions')
kvsession = KVSessionExtension(store, app)
@app.route('/a')
def a():
session['last'] …Run Code Online (Sandbox Code Playgroud) 我有一个我希望以下列方式构建的URL字符串:
http://something.com/mainsite/key1/key2/key3/keyn
如何在我的URL映射中生成类似这样的内容,其中n是变量号?
我如何获得这些钥匙?
谢谢
我正在尝试使用flask和flask-sqlalchemy创建一个Web应用程序,我有以下代码
from flask.ext.sqlalchemy import SQLAlchemy
from flask import Flask
app= Flask(__name__)
app.config['SQLALCHEMY_DATABASE_URI']= 'mysql+mysqldb://root:presario@127.0.0.1/testdb'
db = SQLAlchemy(app)
Run Code Online (Sandbox Code Playgroud)
当我从命令行运行db.create_all()时,我得到未知数据库'testdb'错误我正在使用ubuntu,但上面的代码适用于我的Windows机器.
我已经尝试添加端口号,删除python连接器但没有任何作用.下面是堆栈跟踪
File "/usr/lib/python2.7/dist-packages/MySQLdb/__init__.py", line 81, in Connect
return Connection(*args, **kwargs)
File "/usr/lib/python2.7/dist-packages/MySQLdb/connections.py", line 187, in __init__
super(Connection, self).__init__(*args, **kwargs2)
sqlalchemy.exc.OperationalError: (OperationalError) (1049, "Unknown database 'testdb'") None None
Run Code Online (Sandbox Code Playgroud) 如何在SQLAlchemy中获取所需的验证器?实际上我只是想确保用户填写表格中的所有必填字段.我使用PostgreSQL,但它没有意义,因为从models.py文件中的Objects创建的表:
from sqlalchemy import (
Column,
Integer,
Text,
DateTime,
)
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import (
scoped_session,
sessionmaker,
)
from zope.sqlalchemy import ZopeTransactionExtension
from pyramid.security import (
Allow,
Everyone,
)
Base = declarative_base()
class Article(Base):
""" The SQLAlchemy declarative model class for a Article object. """
__tablename__ = 'article'
id = Column(Integer, primary_key=True)
name = Column(Text, nullable=False, unique=True)
url = Column(Text, nullable=False, unique=True)
title = Column(Text)
preview = Column(Text)
content = Column(Text)
cat_id = Column(Integer, nullable=False)
views = …Run Code Online (Sandbox Code Playgroud) 在 Svelte 中,我有一个组件用于在两个不同的列表中显示项目。当这些项目从一个列表移动到另一个列表时,它们会使用过渡来动画进出。
但是,我也有一种方法可以过滤屏幕上显示的内容。显示一组新项目将使用相同的组件,但具有不同的数据。在这种情况下,我不希望发生过渡动画。我认为添加local修饰符可以解决问题,但 Svelte 似乎没有将父元素放到列表中,而是重用它并在现有列表 DOM 元素中添加新数据。
我试图重现我在下面的示例代码中看到的内容。
通缉行为:
<li>添加或删除的 TODO进行动画处理。实际行为:
我怎样才能改变我的例子,以获得我想要的效果?
App.svelte:
<script>
import Todos from './Todos.svelte';
let todos = [
{ id: 1, category: 'personal', name: 'Walk dog', done: false },
{ id: 2, category: 'personal', name: 'Take out trash', done: false },
{ id: 3, category: 'work', name: 'Make login page functional', done: false },
{ id: 4, category: 'work', name: 'Make login page elegant', done: false …Run Code Online (Sandbox Code Playgroud) 我试图从另一个.py初始化类(extraropt),但它给了我一个错误,我已经搜索但我没有找到解决方案.
下面是我正在调用的一个py的代码:
main.py:
class GameWindow(ui.ScriptWindow):
def __init__(self, stream):
import extraop
exec 'extraop.extraropt().Show(stream)'
Run Code Online (Sandbox Code Playgroud)
这里是我试图调用的一个py的代码(仅限init和del):
extraop.py
class extraropt(ui.Window):
def __init__(self, stream):
ui.Window.__init__(self)
self.BuildWindow()
self.stream=stream
def __del__(self):
ui.Window.__del__(self)
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
Error - __init__() takes exactly 2 arguments (1 given)
Run Code Online (Sandbox Code Playgroud) python ×5
flask ×3
sqlalchemy ×2
async-await ×1
dictionary ×1
future ×1
inheritance ×1
javascript ×1
ms-access ×1
odbc ×1
oracle ×1
pyramid ×1
rust ×1
svelte ×1