我正在阅读有关pivotcache的MS Excel帮助文章,并想知道OLE DB和ODBC源的含义
...您应该使用CommandText属性而不是SQL属性,该属性现在主要用于与早期版本的Microsoft Excel兼容.如果同时使用这两个属性,则CommandText属性的值优先.
对于OLE DB源,CommandType属性描述CommandText属性的值.
对于ODBC源,CommandText属性的功能与SQL属性完全相同,设置属性会导致数据刷新...
我非常感谢你的简短回答.
我正在尝试使用Java连接到MS Access创建的数据库,但我似乎无法管理.我使用ODBC,我得到这个例外:
java.sql.SQLException:[Microsoft] [ODBC驱动程序管理器]指定的DSN包含驱动程序和应用程序之间的体系结构不匹配
我的Java:
package javaapplication2;
import java.sql.Statement;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
/**
*
* @author Owner
*/
public class JavaApplication2 {
/**
* @param args the command line arguments
*
*/
public static void main(String[] args) {
// TODO code application logic here
try {
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String sourceURL = new String("jdbc:odbc:myDatabase");
System.out.println(sourceURL);
Connection dbConnection = DriverManager.getConnection(sourceURL,"admin","");
Statement myStmt = dbConnection.createStatement();
String query = "INSERT INTO People(ID, Name, Surname, Age, Contact, Location, Course) VALUES"
+ …Run Code Online (Sandbox Code Playgroud) 我有一个通过Odbc连接到数据库的方法.我正在调用的存储过程有一个返回值,从数据库端是一个'Char'.现在我将该返回值作为字符串抓取并在简单的if语句中使用它.当只有两个值可以从数据库0和1返回时,我真的不喜欢比较这样的字符串的想法.
OdbcCommand fetchCommand = new OdbcCommand(storedProc, conn);
fetchCommand.CommandType = CommandType.StoredProcedure;
fetchCommand.Parameters.AddWithValue("@column ", myCustomParameter);
fetchCommand.Parameters.Add("@myReturnValue", OdbcType.Char, 1)
.Direction = ParameterDirection.Output;
fetchCommand.ExecuteNonQuery();
string returnValue = fetchCommand.Parameters["@myReturnValue"].Value.ToString();
if (returnValue == "1")
{
return true;
}
Run Code Online (Sandbox Code Playgroud)
处理这种情况的正确方法是什么?我试过'Convert.ToBoolean()',这似乎是一个明显的答案,但我遇到了'字符串未被识别为有效的布尔值.'抛出异常.我在这里遗漏了什么,还是有另一种方法让'1'和'0'表现得像真假一样?
谢谢!
我试图在使用PostgreSQL 9的Windows XP Pro上首次打开一个程序.我收到一条错误消息,上面写着:
尝试登录或创建生产数据库时遇到问题.详细信息:[Microsoft] [ODBC驱动程序管理器]未找到数据源名称,并且未指定默认驱动程序
在我的ODBC管理器中,我有一个用户DSN和系统DSN的列表.我尝试安装一个postgres odbc驱动程序,看看是否会有所帮助,但事实并非如此.
程序文件中有一个connect.dat文件,其中包含一行"OLE DB Provider = MSDASQL".更改此条目会更改我收到的错误消息"无法找到提供程序,可能未正确安装".
我不知道要插入哪个提供程序名称以使其正常工作.我对此错误进行了广泛的研究,但无济于事.任何建议将不胜感激.
如何使用Windows身份验证将MS SQL Server与pyodbc库连接?
我可以通过MS Access和SQL Server Management Studio连接,但无法获得Python的工作连接ODBC字符串.
这是我尝试过的(也没有'Trusted_Connection=yes'):
pyodbc.connect('Trusted_Connection=yes',
driver='{SQL Server}', server='[system_name]',
database='[databasename]')
pyodbc.connect('Trusted_Connection=yes', uid='me',
driver='{SQL Server}', server='localhost',
database='[databasename]')
pyodbc.connect('Trusted_Connection=yes',
driver='{SQL Server}', server='localhost',
uid='me', pwd='[windows_pass]', database='[database_name]')
pyodbc.connect('Trusted_Connection=yes',
driver='{SQL Server}', server='localhost',
database='[server_name]\\[database_name]')
pyodbc.connect('Trusted_Connection=yes',
driver='{SQL Server}', server='localhost',
database='[server_name]\[database_name]')
pyodbc.connect('Trusted_Connection=yes',
driver='{SQL Server}',
database='[server_name]\[database_name]')
Run Code Online (Sandbox Code Playgroud) sql-server odbc windows-authentication pyodbc sql-server-2008-r2
我需要对Microsoft SQL Server 2008进行逆向工程以创建Microsoft Visio 2007数据库模型图.所以我从Database菜单中选择"Reverse Engineer"来连接数据库.
我配置了Microsoft SQL Server Visio驱动程序,以便使用SQL Server Native Client 10.0作为ODBC驱动程序.之后我创建了一个连接到我的数据库的用户DSN.此DSN有效(至少提供的测试成功).在反向工程向导中单击下一步后,Visio请求我正确提供的凭据,但单击确定后,我收到以下消息:
当前选定的Visio驱动程序与数据源不兼容.
我尝试使用旧的SQL Server ODBC驱动程序,当然还要重新配置Visio驱动程序.它也不起作用.
是的,我知道PHP 7.0删除了连接到MSSQL所需的扩展.FreeTDS是我在PHP 7.0之前的选择,但现在确实没有明显的升级路径需要仍然连接到MSSQL的人.
愚蠢的问题,但鉴于MSSQL在企业环境中使用得非常好,我们应该如何从PHP 7.0开始连接到那些数据库?
我是否忽视了一些明显的东西,或者PHP 7的发布基本上给了那些需要连接到MSSQL的人一记耳光?
为清楚起见,我不是在谈论从运行PHP的Windows服务器连接,我需要从Linux服务器连接到MSSQL,因此需要Linux ODBC驱动程序.
有没有人制作适用于MSSQL 2012和PHP 7.0的东西,可以免费或收费?
对我来说很奇怪,那里没有太多的PHP 7和MSSQL信息.虽然PHP 7在印刷机上是新鲜的,但是必须有更多的MSSQL商店(FWIW我们同时使用它们).
以数据库独立的方式检查Sql数据库中是否存在表的最佳方法是什么?
我提出了:
bool exists;
const string sqlStatement = @"SELECT COUNT(*) FROM my_table";
try
{
using (OdbcCommand cmd = new OdbcCommand(sqlStatement, myOdbcConnection))
{
cmd.ExecuteScalar();
exists = true;
}
}
catch
{
exists = false;
}
Run Code Online (Sandbox Code Playgroud)
有一个更好的方法吗?当与数据库的连接失败时,此方法将不起作用.我已经找到了Sybase,SQL服务器,Oracle的方法,但没有任何适用于所有数据库的方法.
在我目前的工作中,我们正在寻求实现我们自己的odbc驱动程序,以允许许多不同的应用程序能够连接到我们自己的应用程序作为数据源.现在我们正在尝试权衡开发我们自己的驱动程序到实现规范的选项,这是大规模的,或者使用SDK,允许程序员"填写"特定于数据的部分并允许更高级别的抽象.
有没有其他人实现自定义odbc驱动程序?你遇到了什么陷阱?你自己做了什么好处?花了多少工时呢?您是否使用过SDK?如果是这样,您从该方法中看到了哪些好处/缺点?
任何评论和答案将不胜感激.谢谢!
编辑:我们正在尝试使用我们的代码来维护可移植性,这是用C语言编写的.
当我尝试使用pyodbc(在mac上)连接到sql server数据库时:
import pyodbc
server = '####'
database = '####'
username = '####@####'
password = '#####'
driver='{ODBC Driver 13 for SQL Server}'
pyodbc.connect('DRIVER='+driver+';SERVER='+server+';PORT=1443;DATABASE='+database+';UID='+username+';PWD='+password)
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
错误:('01000',"[01000] [unixODBC] [驱动程序管理器]无法打开lib'用于SQL Server的ODBC驱动程序13':找不到文件(0)(SQLDriverConnect)")
当我在实际的驱动程序位置路径时:
driver='/usr/local/lib/libmsodbcsql.13.dylib'
Run Code Online (Sandbox Code Playgroud)
它开始工作了!
我odbcinst.ini看起来像这样:
[ODBC Driver 13 for SQL Server]
Description=Microsoft ODBC Driver 13 for SQL Server
Driver=/usr/local/lib/libmsodbcsql.13.dylib
UsageCount=1
Run Code Online (Sandbox Code Playgroud)
如何让我参考driver='{ODBC Driver 13 for SQL Server}'再次开始工作?
我最初使用本指南来安装驱动程序.如果有帮助的话,我在Mac Sierra上使用anaconda?