我有一个Access 2010数据库A.mdb,其中包含一个表列表,其中一个是链接表,从同一服务器上的另一个Access数据库B.mdb链接.这些数据库位于开发计算机上xxx.xxx.xxx.xxx,该计算机映射在我的计算机上R://,然后在yyy.yyy.yyy.yyy服务器上在线发布.
如果我想在本地处理数据库,我需要更改表的链接.但是,如果我通过文件系统更改它(使用"链接表管理器"),链接就会变成R://....,当我查看请求这些数据的ASP页面时,它会被破坏,因为路径错误.此外,如果我在本地更改链接,它将无法在在线服务器上工作.
有没有办法"以编程方式"更改链接?也就是说,不使用链接表管理器?
我寻找答案,但我不是那么专家,我只是明白我必须写一个"模块"?"宏"?
有没有办法使用Windows身份验证连接到MS SQL Server ,即使没有在Windows框上运行python应用程序?
我试图用pymssql做这个,但是这些例子似乎主要假设你在windows上运行.
如果有一种方法可以使用其他库来建立这种连接,请随时提出建议,但我确实喜欢pymssql如何通过pip安装和部署.
我想连接到2005/2008数据库,我正在运行Ubuntu 13.04(但如果有所不同,我可以升级到更高版本的Ubuntu)
解:
事实证明,pymssql可以通过我的Windows用户名和密码连接到我的数据库.但要这样做,我需要传递实际的用户名/密码,如下所示:
pymssql.connect(host, 'THEDOMAIN\\theusername', 'thepassword', db)
Run Code Online (Sandbox Code Playgroud)
EkoostikMartin提供的解决方案仍然很好(如果你不想在某个地方存储密码,这可能是windows auth的意思)
我正在尝试从Python创建一个MS Access数据库,并想知道是否可以直接从pandas数据帧创建一个表.我知道,我可以用熊猫dataframe.to_sql()功能的数据帧成功地写入到SQLite数据库或通过使用SQLAlchemy的发动机为其他数据库格式(但不是不幸访问),但我不能让所有的件件走到一起.这是我一直在测试的代码片段:
import pandas as pd
import sqlalchemy
import pypyodbc # Used to actually create the .mdb file
import pyodbc
# Connection function to use for sqlalchemy
def Connection():
MDB = 'C:\\database.mdb'
DRV = '{Microsoft Access Driver (*.mdb)}'
connection_string = 'Driver={Microsoft Access Driver (*.mdb)};DBQ=%s' % MDB
return pyodbc.connect('DRIVER={};DBQ={}'.format(DRV,MDB))
# Try to connect to the database
try:
Conn = Connection()
# If it fails because its not been created yet, create it and connect to it
except:
pypyodbc.win_create_mdb(MDB)
Conn …Run Code Online (Sandbox Code Playgroud) 我已经安装了:
我只想使用 SQLAlchemy 和 Azure SQL 数据仓库创建一个概念证明。但是,当我尝试使用以下代码对映射到客户视图表的客户模型运行查询时:
import urllib
from sqlalchemy import create_engine
from sqlalchemy import Column, Integer
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import sessionmaker
db_username = 'username'
db_password = 'password'
db_database = 'dbname'
db_hostname = 'dbhost'
db_driver = 'ODBC Driver 17 for SQL Server'
db_port = '1433'
db_connectionString = f"DRIVER={{{db_driver}}}; SERVER={{{db_hostname}}}; DATABASE={{{db_database}}}; UID={{{db_username}}}; PWD={{{db_password}}}; PORT={{{db_port}}};"
engine_params = urllib.parse.quote_plus(db_connectionString)
engine = create_engine(f"mssql+pyodbc:///?odbc_connect={engine_params}", echo=True) …Run Code Online (Sandbox Code Playgroud) 我需要将Access数据宏从我的测试数据库传输到我的生产数据库.有谁知道怎么做?
我知道将表从一个accdb转移到另一个accdb也会传输数据宏,但在我的情况下这不是一个选项.我也知道我可以在生产accdb中手动重新创建它们,但这使我容易出错,并且需要将生产数据库关闭的时间比脚本传输方案要长.
如果我不得不这样做一次就不会那么大,但我需要在开发项目的过程中多次这样做.
我已经尝试将表导出到xml,但不包括数据宏.
请注意,我在这里询问Access 2010 数据宏,而不是常规的Access宏.
我正在尝试聚合一些教师数据(以便轻松地显示教师在一个学期中教授的课程),直到现在我才接受为每位教师提供多行.但是,如果我可以将教师的所有教学都放在一行中,那么对某些业务流程会有好处.这是一些示例数据(我的表有更多列,但总体思路不会有太大变化.
tbl_Instructors有:
N_ID | F_Name | L_Name
001 Joe Smith
002 Henry Fonda
003 Lou Reed
Run Code Online (Sandbox Code Playgroud)
tbl_Courses有:
Course_ID | N_ID | Course_Info
AAA 001 PHYS 1
AAB 001 PHYS 2
CCC 002 PHYS 12
DDD 003 PHYS 121
FFF 003 PHYS 224
Run Code Online (Sandbox Code Playgroud)
我想要回归的是:
N_ID | First_Name | Last_Name | Course_IDs
001 Joe Smith AAA, AAB
002 Henry Fonda CCC
003 Lou Reed DDD, FFF
Run Code Online (Sandbox Code Playgroud)
我想我需要做一些事情,从tbl_Instructors中选择所有N_ID,然后通过连接从tbl_Courses返回Course_IDs,但这个神奇的步骤已经提到了我.有帮助吗?我可以通过SQL选择执行此操作还是需要使用VB?
所以我有一个令人沮丧的简单问题,我似乎无法解决.
If Me.Bank_Credit.Value = Null Then
Me.Bank_Credit.Value = 0
End If
Run Code Online (Sandbox Code Playgroud)
基本上,我有一个未绑定的框,用户输入数据然后点击按钮.确认框上的"是"后,未绑定框上的数据将复制到绑定框中.但是,如果用户没有输入任何内容,那么反过来会创建一个空的绑定字段,这会严重搞砸了路上的查询.
话虽这么说,上面的代码根本不适用于我.例如,如果我设置了如果Me.Bank_Credit.Value = 1然后运行它,则1s变为2s,应该发生.但它只是拒绝为Null甚至""工作.
我很确定这个问题有一个简单的解决方案,我只是想不出来.
提前致谢
Access 2013不支持ADP.给出了ADP的一些替代方案:
我的ADP仅包含表单,报表,宏和模块.我想在Access 2013中使用此ADP(不在任何早期版本的Access上).
我还没有找到任何方法将ADP转换为链接的Access桌面数据库或将对象导入Access 2013上的ACCDE文件.
如何使用Access 2013将ADP转换为链接的Access桌面数据库或将对象导入ACCDE文件?
我在python中运行了一系列复杂的sql查询,它涉及临时表.我的自动提交方法似乎无法从临时表中检索数据.我在下面使用的代码片段,这是我得到的输出:
testQuery="""
Select top 10 *
INTO #Temp1
FROM Table1 t1
JOIN Table2 t2
on t1.key=t2.key
"""
cnxn=pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=DB;UID=UID;PWD=PWD')
cnxn.autocommit=True
cursor=cnxn.cursor()
cursor.execute(testQuery)
cursor.execute("""Select top 10 * from #Temp1""")
<pyodbc.Cursor at 0x8f78930>
cnxn=pyodbc.connect(r'DRIVER={SQL Server Native Client 11.0};SERVER=server;DATABASE=DB;UID=UID;PWD=PWD')
cnxn.autocommit=True
cursor=cnxn.cursor()
cursor.execute(testQuery)
cursor.execute("""Select top 10 * from #Temp1""")
Run Code Online (Sandbox Code Playgroud) 我正在尝试在java.time最新版本的 Sql Server JDBC 驱动程序中使用新类。正如我所读到的,它应该只适用于方法:PreparedStatement.setObject()和ResultSet.getObject()。
所以我创建了示例代码,但不能让它与 ResultSets 一起工作。我不知道我在这里做错了什么。
Connection connection = DriverManager.getConnection(connectionString);
PreparedStatement preparedStatement = connection.prepareStatement("SELECT * FROM myTable WHERE ? BETWEEN date_from AND date_to");
preparedStatement.setObject(1, LocalDateTime.now()); // That works
ResultSet resultSet = preparedStatement.executeQuery();
if (resultSet.next()) {
Object o = resultSet.getObject("date_from");
o.getClass() returns java.sql.Timestamp
LocalDateTime dateTime = resultSet.getObject("date_from", LocalDateTime.class);
}
Run Code Online (Sandbox Code Playgroud)
这会引发异常:
com.microsoft.sqlserver.jdbc.SQLServerException:不支持转换为类 java.time.LocalDateTime。
驱动版本:mssql-jdbc-6.5.4.jre8-preview.jar
SQL Server 版本:2016
如何解释底部表格中的这句话:
Java 8 中的新 Java 类:LocalDate/LocalTime/LocalDateTime、OffsetTime/OffsetDateTime
新的 JDBC 类型:TIME_WITH_TIMEZONE、TIMESTAMP_WITH_TIMEZONE、REF_CURSOR
REF_CURSOR is not supported in SQL Server. …
ms-access ×5
python ×4
pyodbc ×3
sql-server ×3
sqlalchemy ×2
access-vba ×1
adp ×1
java ×1
jdbc ×1
macros ×1
msodbcsql17 ×1
mssql-jdbc ×1
pymssql ×1
pypyodbc ×1
sql ×1
vba ×1