在默认目录以外的指定目录中连接/存储 sqlite3 数据库 -- "conn = sqlite3.connect('name_of_database')"
Connect / Store sqlite3 database in specified directory other than default -- "conn = sqlite3.connect('name_of_database')"
我正在使用 Sqlite3 数据库,试图从与最初创建的目录不同的目录访问其数据。
我 运行 通过我们的 Squish GUI Automation IDE 拥有的 python 脚本(测试用例)位于目录
C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist\tst_dashboard_functional_setup
我在同一脚本中使用以下 table 创建了一个数据库:
def get_var_value_pass():
conn = sqlite3.connect('test_result.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS test_result_pass (pass TEXT,result INTEGER)')
c.execute("INSERT INTO test_result_pass VALUES('Pass', 0)")
conn.commit()
c.execute("SELECT * FROM test_result_pass WHERE pass='Pass'", )
pass_result = c.fetchone()
test.log(str(pass_result[1]))
test_result = pass_result[1]
c.close()
conn.close()
return test_result
现在我想访问我之前由 "conn = sqlite3.connect('test_result.db')" 在位于不同目录
的另一个测试用例中创建的同一个数据库
C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist\tst_Calling_In-Call-Options_Text_Share-Text_Update-Real-Time
问题是,当我在不同的脚本(测试用例)中为同一个数据库尝试 select 语句时,如下所示:
def get_var_value_pass(pass_value):
conn = sqlite3.connect('test_result.db')
c = conn.cursor()
c.execute("SELECT * FROM test_result_pass WHERE pass='Pass'", )
我一尝试 c.execute("") 语句,我的测试就失败了,因为找不到 table。相反,最近的 "conn = sqlite3.connect('test_result.db')" 刚刚创建了一个新的空数据库,而不是引用我最初创建的数据库。因此,我得出的结论是,我想尝试存储我的原始数据库,其中两个测试用例都可以将它们用作另一个目录中的 test_suite_resource--basically,其他测试用例将在其中引用。理想情况下:
C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist
是否有 sqlite3 函数可让您声明要连接/存储数据库的位置?类似于 sqlite3.connect('test_result.db') 除了你定义它的路径?
顺便说一句——我已经在同一个测试脚本中尝试了第二个代码片段,它运行得很好。我还尝试了 sqlite3.connect(':memory:') 的内存方法——仍然没有成功。请帮忙!谢谢
我不清楚你是否收到了答复。您有多种选择。我碰巧有一个 sqlite 数据库存储在一个目录中,我可以通过以下方式之一在该目录或另一个目录中打开它。
import sqlite3
conn = sqlite3.connect(r'C:\Television\programs.sqlite')
conn.close()
print('Hello')
conn = sqlite3.connect('C:\Television\programs.sqlite')
conn.close()
print('Hello')
conn = sqlite3.connect('C:/Television/programs.sqlite')
conn.close()
print('Hello')
所有三个连接尝试都成功。我看到三个 Hello 作为输出。
- 在字符串前面加上 'r'。原因见string相关文档
- 用一对向后笔画替换每个向后笔画。
- 用向前的笔划替换每个向后的笔划。
我正在使用 Sqlite3 数据库,试图从与最初创建的目录不同的目录访问其数据。
我 运行 通过我们的 Squish GUI Automation IDE 拥有的 python 脚本(测试用例)位于目录
C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist\tst_dashboard_functional_setup
我在同一脚本中使用以下 table 创建了一个数据库:
def get_var_value_pass():
conn = sqlite3.connect('test_result.db')
c = conn.cursor()
c.execute('CREATE TABLE IF NOT EXISTS test_result_pass (pass TEXT,result INTEGER)')
c.execute("INSERT INTO test_result_pass VALUES('Pass', 0)")
conn.commit()
c.execute("SELECT * FROM test_result_pass WHERE pass='Pass'", )
pass_result = c.fetchone()
test.log(str(pass_result[1]))
test_result = pass_result[1]
c.close()
conn.close()
return test_result
现在我想访问我之前由 "conn = sqlite3.connect('test_result.db')" 在位于不同目录
的另一个测试用例中创建的同一个数据库C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist\tst_Calling_In-Call-Options_Text_Share-Text_Update-Real-Time
问题是,当我在不同的脚本(测试用例)中为同一个数据库尝试 select 语句时,如下所示:
def get_var_value_pass(pass_value):
conn = sqlite3.connect('test_result.db')
c = conn.cursor()
c.execute("SELECT * FROM test_result_pass WHERE pass='Pass'", )
我一尝试 c.execute("") 语句,我的测试就失败了,因为找不到 table。相反,最近的 "conn = sqlite3.connect('test_result.db')" 刚刚创建了一个新的空数据库,而不是引用我最初创建的数据库。因此,我得出的结论是,我想尝试存储我的原始数据库,其中两个测试用例都可以将它们用作另一个目录中的 test_suite_resource--basically,其他测试用例将在其中引用。理想情况下:
C:\Squish_Automation_Functional_nVP2\suite_Production_Checklist
是否有 sqlite3 函数可让您声明要连接/存储数据库的位置?类似于 sqlite3.connect('test_result.db') 除了你定义它的路径?
顺便说一句——我已经在同一个测试脚本中尝试了第二个代码片段,它运行得很好。我还尝试了 sqlite3.connect(':memory:') 的内存方法——仍然没有成功。请帮忙!谢谢
我不清楚你是否收到了答复。您有多种选择。我碰巧有一个 sqlite 数据库存储在一个目录中,我可以通过以下方式之一在该目录或另一个目录中打开它。
import sqlite3
conn = sqlite3.connect(r'C:\Television\programs.sqlite')
conn.close()
print('Hello')
conn = sqlite3.connect('C:\Television\programs.sqlite')
conn.close()
print('Hello')
conn = sqlite3.connect('C:/Television/programs.sqlite')
conn.close()
print('Hello')
所有三个连接尝试都成功。我看到三个 Hello 作为输出。
- 在字符串前面加上 'r'。原因见string相关文档
- 用一对向后笔画替换每个向后笔画。
- 用向前的笔划替换每个向后的笔划。