當前位置:首頁 » 編程語言 » 數據源執行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資料庫。
恢復其他系統資料庫。
恢復用戶資料庫。