当前位置:首页 » 编程语言 » 数据源执行sql异常
扩展阅读
webinf下怎么引入js 2023-08-31 21:54:13
堡垒机怎么打开web 2023-08-31 21:54:11

数据源执行sql异常

发布时间: 2022-06-09 11:37:44

A. PHP源码运行显示“执行sql失败:No database selected”

这个错误表示你没有指定查询语句的数据库,你知道数据库是什么意思吗,可以理解存放表的文件夹。

假设你的表tj在数据库test里面,那么SQL语句:
select count(*) from tj ....

就应该修改为:
select count(*) from test.tj ....

也就是说在表名的前面添加数据库名称和小数点(英文),可以明确的指定数据库。

还有一个方法,就是在mysql_connect连接到服务器之后,使用下面的语句选择数据库test,表示以后所有的表没有指定数据库都是指test数据库:
mysql_select_db('test');

B. 在SQL数据库中附加数据库时遇到如下错误,请问如何解决执行 Transact-SQL 语句或批处理时发生了异常

转csdn
sql专家邹建的解决办法
作者:邹建
直接restore或附加应该是不行的,
脚本+导数据肯定没有问题。
2005转到2000的步骤步骤
1.
生成for
2000版本的数据库脚本
2005
的manger
studio
--
打开"对象资源管理器"(没有的话按F8),
连接到你的实例
--
右键要转到2000的库
--
任务
--
生成脚本
--
在"脚本向导"的"选择数据库"中,
确定选择的是要转到2000的库
--
勾选"为所选数据库中的所有对象编写脚本"
--
在接下来的"选择脚本选项"中,
找到"为服务器版本编写脚本"项,
选择"SQL
Server
2000"
--
其他选项根据需要设置
--
最后把脚本保存到一个
.sql
脚本文件
2.
在2000中创建目标数据库
在查询分析器(或2005的manger
studio在打开脚本文件),
连接到SQL
Server
2000,执行上面生成的脚本.以创建一个新的数据库
3.
将数据从2005导到2000
2005
的manger
studio
--
打开"对象资源管理器"(没有的话按F8),
连接到你的实例
--
右键要转到2000的库
--
任务
--
导出数据
--
在"SQL
Server
导入和导出向导"的"选择数据源"步骤中,
确定选择的是要导出的数据库
--
在"选择目标"步骤中,
连接到
2000,
并选择步骤2新建的库
--
在"选择源表和源视图"中,
选择所有的表
--
最后完成

C. sql数据库执行错误代码1055怎么解决

错误代码1055。不过看了Expression里面的原因描述,我基本知道怎么回事了。原因是因为mysql中对 group by 用法的规定。严格意义上说,就是group by之后。select 的字段只能是group by的字段。或者需要加聚合函数的。在 oracle 中,一直有这项约定。所以直接就会报错。但是mysql 直到 5.7 版本之后才把这个要求明确限制起来。

很明显,这种问题两种思路:第一修改sql。按照规定的规范重写项目中所有有问题的sql。很明显代价太大。风险很高;第二种那就是把这种限制去掉,让功能继续像5.7之前的样子一样能跑。我果断选择了第二种。因为第一种代价太大。

解决办法:

1. 首先如何查看当前数据库使用的sql_mode:

select@@sql_mode;

2.修改mysql的配置文件,删掉only_full_group_by这一项

注意:Mac:Mysql默认安装在/usr/local目录下,这个目录可以通过command+shift+G进入:如下图

windows下是的配置文件是my.ini,自己可以找一下。

问题解决完了,然后剩下两个问题:

1. mysql里面的sql_mode 一共有哪些,并且mode的值各自代表什么含义。在网上查询了一下,结果如下:

MySQL5.0以上版本支持三种sql_mode模式:ANSI、TRADITIONAL和STRICT_TRANS_TABLES
1、ANSI模式:宽松模式,更改语法和行为,使其更符合标准SQL。对插入数据进行校验,如果不符合定义类型或长度,对数据类型调整或截断保存,报warning警告。对于本文开头中提到的错误,可以先把sql_mode设置为ANSI模式,这样便可以插入数据,而对于除数为0的结果的字段值,数据库将会用NULL值代替。
将当前数据库模式设置为ANSI模式:切换到mysql命令下执行:set @@sql_mode=ANSI;

2、TRADITIONAL模式:严格模式,当向mysql数据库插入数据时,进行数据的严格校验,保证错误数据不能插入,报error错误,而不仅仅是警告。用于事物时,会进行事物的回滚。 注释:一旦发现错误立即放弃INSERT/UPDATE。如果你使用非事务存储引擎,这种方式不是你想要的,因为出现错误前进行的数据更改不会“滚动”,结果是更新“只进行了一部分”。
将当前数据库模式设置为TRADITIONAL模式:切换到mysql命令下执行:set @@sql_mode=TRADITIONAL;

3、STRICT_TRANS_TABLES模式:严格模式,进行数据的严格校验,错误数据不能插入,报error错误。如果不能将给定的值插入到事务表中,则放弃该语句。对于非事务表,如果值出现在单行语句或多行语句的第1行,则放弃该语句。
将当前数据库模式设置为STRICT_TRANS_TABLES模式:切换到mysql命令下执行:set @@sql_mode=STRICT_TRANS_TABLES;

D. 网站数据库执行的SQL语句出错,帮我看看是哪里出错了

`id` int(10) NOT NULL AUTO_INCREMENT,

这里int不能这样用的只能long,signed int,short等,所以int(10)改一下为long

E. jsp连接数据库的程序,SQL异常,哪里出问题

创一个ODBC的conn数据源,并将ODBC的JAR包导入
建议用JDBC本地化连接,比JDBC-ODBC桥连接要好一些。
给你一个JDBC的类,看看有没有帮助
===============================
//DBConnection类
import java.sql.*;
/**
* @功能: 一个JDBC的本地化API连接类,封装了数据操作方法,只用传一个SQL语句即可
* @作者: 李开欢
* @日期: 2007/
* @说明: 数据库为SQLSERVER 2000要将SQL Server 的JDBC的三个包导入工程中
*/
public class DBConnection implements Constant{
/*
* 要连接什么数据库就调用什么数据库的常量,请记得将相应的JAR包导入
*/
private static Connection conn;
private static Statement ps;
private static ResultSet rs;
public DBConnection() {
// TODO Auto-generated constructor stub
DBConnection.getConnection();
}
public static Connection getConnection(){
System.out.println("连接中...");
try {
Class.forName(DBConnection.MYSQL_DRIVER);
conn = DriverManager.getConnection(DBConnection.MYSQL_URL, DBConnection.MYSQL_USER, DBConnection.MYSQL_PASS);
System.out.println("成功连接");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return conn;
}

public static Statement getStatement(String sql){
System.out.println("执行SQL语句中...");
try {
ps = conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE, ResultSet.CONCUR_UPDATABLE);
if(sql.substring(0, 6).equals("select")){
rs = ps.executeQuery(sql);
System.out.println("执行完查询操作,结果已返回ResultSet集合");
}else if(sql.substring(0, 6).equals("delete")){
ps.executeUpdate(sql);
System.out.println("已执行完毕删除操作");
}else if(sql.substring(0, 6).equals("insert")){
ps.executeUpdate(sql);
System.out.println("已执行完毕增加操作");
}else{
ps.executeUpdate(sql);
System.out.println("已执行完毕更新操作");
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return ps;
}

public static ResultSet getResultSet(){
System.out.println("查询结果为:");
return rs;
}

public static void closeConnection(){
System.out.println("关闭连接中...");
try {
if (rs != null) {
rs.close();
System.out.println("已关闭ResultSet");
}
if (ps != null) {
ps.close();
System.out.println("已关闭Statement");
}
if (conn != null) {
conn.close();
System.out.println("已关闭Connection");
}
} catch (Exception e) {
// TODO: handle exception
}
}

public static void main(String[] args) {
// TODO Auto-generated method stub
DBConnection.getConnection();
DBConnection.closeConnection();
}
}
//Constant接口
public interface Constant {
//数据连接部份常量
public static final String SQLSERVER_DRIVER = "com.microsoft.jdbc.sqlserver.SQLServerDriver";
public static final String SQLSERVER_URL = "jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=mydb";
public static final String SQLSERVER_USER ="sa";
public static final String SQLSERVER_PASS = "sa";
public static final String MYSQL_DRIVER = "com.mysql.jdbc.Driver";
public static final String MYSQL_URL = "jdbc:mysql://localhost:3306/mydb";
public static final String MYSQL_USER = "root";
public static final String MYSQL_PASS = "";
}

F. 执行sql语句报1064错误怎么解决

原因:设置错误造成。解决方法:进入数据库服务器解决此问题。

如下参考:

1.打开HeidiSQL,选择要操作的服务器连接,然后点击“open”。

G. SQL数据库语句执行有错误,请问如何解决

建议写多表关联查询时,给表起别名,然后查询字段和条件字段都统一加别名前缀.

H. 执行transact-sql 语句或批处理时发生异常。

执行transact-sql 语句或批处理时发生异常是设置错误造成的,解决方法为:

1、打开HeidiSQL,选择要操作的服务器连接,然后点击【打开】。

I. 在运行SQL时出现错误,请问如何解决

运行数据库出现错误,解决步骤如下:

1、单击“开始”—“所有程序”—“MS SQL Server 2008R2”;

2、选择“Configuration tools”;

3、单击“SQL Server Configuration Manager”,打开;

J. 程序在执行SQL语句时,若出现系统异常中断或数据库突发崩溃,如何保证

备份可用数据后,卸载重装恢复数据库。
程序在执行SQL语句时,若出现系统异常中断或数据库突发崩溃,先备份可用的数据,包含所有系统数据库和用户数据库的数据文件和日志文件。
卸载原来的安装。
系统表查找和删除所有的MSSQLServer项。
磁盘上删除安装SQLSErver产生的所有文件。
重新安装SQLServer,所需安装的补丁的版本要求保持与备份系统数据库时安装的补丁版本一致。
单用户模式下恢复master数据库。
恢复其他系统数据库。
恢复用户数据库。