新聞中心
在使用數(shù)據(jù)庫的過程中,經(jīng)常會碰到各種各樣的問題,比如數(shù)據(jù)庫1372錯誤。這種錯誤不僅會影響用戶的使用體驗,還可能對數(shù)據(jù)的完整性造成威脅。那么,如何解決這個問題呢?本文將會介紹幾種解決方法。

一、概述
1372錯誤是指當(dāng)在數(shù)據(jù)庫執(zhí)行查詢操作時,出現(xiàn)了查詢結(jié)果太大無法顯示的情況,一般發(fā)生在查詢返回的結(jié)果集大于5000 條或者1 MB時。主要原因就是sql server默認(rèn)情況下,返回結(jié)果集的大小為64K。這時,系統(tǒng)就會提示“Microsoft SQL Server Native Client 10.0 : Cursor operation conflict : Return output parameter is read only”這個錯誤。
二、解決方法
1. 修改命令語句
如果出現(xiàn)了1372錯誤,可以通過修改命令語句來解決。在原來的查詢語句上加上“set rowcount 0”語句,即可取消行數(shù)限制。如:
set rowcount 0
select * from tablename
2. 修改ODBC驅(qū)動設(shè)置
ODBC驅(qū)動在使用SQL Server數(shù)據(jù)庫時,對結(jié)果集的條數(shù)有限制。修改ODBC驅(qū)動的設(shè)置可以解決這種狀況。具體操作如下:
a. 在ODBC 數(shù)據(jù)源中選中對應(yīng)的數(shù)據(jù)源,點擊“配置”。
b. 在“服務(wù)端選項”中,找到“默認(rèn)情況的 ON 允許的更大長度”(一般為65536),修改為需要的大小并保存。(注意:該修改僅適用于2023以后的版本)
3. 修改SQL Server設(shè)置
由于默認(rèn)情況下,SQL Server返回的記錄集大小為64K,如果遇到要返回記錄較多時,就會出現(xiàn)1372錯誤。這時,可以在SQL Server中修改返回記錄集大小的限制。具體操作如下:
a. 在SQL Server中創(chuàng)建一個SP
CREATE PROCEDURE CUSTOM_PROCEDURE
@ACTIVITY DATETIME,
@NETWORK_ID INT,
@ITEM_CATEGORY INT
AS
BEGIN
SET NOCOUNT ON
select * from tablename where
activity=@ACTIVITY and
networkid=@NETWORK_ID and
itemcategory=@ITEM_CATEGORY
OPTION(RECOMPILE,RESULT SETS UNBOUNDED)
END
b. 在ODBC 連接字符串中添加 MARS_Connection=Yes。
c. 在 SQL Server 配置管理器工具中的“SQL Server服務(wù)”下,找到“SQL Server”服務(wù)節(jié)點 – “進(jìn)程管理器”,找到SQL Server進(jìn)程,右鍵單擊,選擇“屬性”,在“內(nèi)存”選項卡下,將“默認(rèn)更大值”和“更大值”設(shè)置為所需的大小。(注意:該修改可能會消耗更多的內(nèi)存,建議謹(jǐn)慎使用)
4. 利用臨時表
如果要查詢的數(shù)據(jù)太大,可以把查詢到的數(shù)據(jù)暫時保存到臨時表中,再根據(jù)需求從臨時表中查詢。具體操作如下:
a. 創(chuàng)建臨時表
create table #tem
(
field1 int,
field2 varchar(50)
)
b. 將查詢內(nèi)容插入到臨時表中
insert into #tem
(
field1,
field2
)
select field1, field2 from tablename
c. 查詢臨時表
select * from #tem
d. 刪除臨時表
drop table #tem
三、
針對數(shù)據(jù)庫1372錯誤問題,本文介紹了幾種解決方法,涉及到修改命令語句、修改ODBC驅(qū)動設(shè)置、修改SQL Server設(shè)置以及利用臨時表四個方面,讀者可以根據(jù)自身需要進(jìn)行選擇。在遇到問題時,建議先根據(jù)錯誤提示進(jìn)行排查,再按照相應(yīng)的方法進(jìn)行修改。只要認(rèn)真和耐心,就一定能夠解決問題,保證數(shù)據(jù)庫的正常運行。
成都網(wǎng)站建設(shè)公司-創(chuàng)新互聯(lián),建站經(jīng)驗豐富以策略為先導(dǎo)10多年以來專注數(shù)字化網(wǎng)站建設(shè),提供企業(yè)網(wǎng)站建設(shè),高端網(wǎng)站設(shè)計,響應(yīng)式網(wǎng)站制作,設(shè)計師量身打造品牌風(fēng)格,熱線:028-86922220關(guān)于JAVA操作數(shù)據(jù)庫報錯的問題,謝謝大家?guī)兔?/h3>
RSQ未初始化導(dǎo)致空指針異常
public class test {
private static ResultSet RSQ;
private static Connection CONN;
public static void main(String args) {
ConStr ns = new ConStr();
String sql1 = “select mnames,micard from mtest where mnames=? and micard =?”;
String ars = { “”, “zhangsan”};
RSQ = ns.PreparedStatementSelect(RSQ, CONN, sql1, ars);
try {
if(RSQ != null){
while (RSQ.next()) {
System.out.println(RSQ.getString(1) + “=>” + RSQ.getString(2));
}
}
} catch (SQLException e) {
e.toString();
}
ns.closeResultSet(RSQ);
ns.closeConnection(CONN);
System.out.println(“select ok!”);
}
public class ConStr {
public Connection getConnection(){
String url = “jdbc:
String username = “root”;
String password = “XXX”;
Connection con = null;;
try{
Class.forName(“com.mysql.jdbc.Driver”) ;
con = DriverManager.getConnection(url , username , password ) ;
}catch(Exception ex){
ex.printStackTrace();
}
return con;
}
public ResultSet PreparedStatementSelect(ResultSet rs,Connection con, String sql,String args){
if(con == null){
con = getConnection();
}
try {
PreparedStatement pstmt = con.prepareStatement(sql) ;
int arrLen = args.length, i;
for(i = 0; i 3){
pstmt.setString(i+1, args);
}else{
pstmt.setInt(i+1, Integer.parseInt(args));
}
}
rs = pstmt.executeQuery();
} catch (SQLException e) {
e.printStackTrace();
}
return rs;
}
public static boolean isNumeric(String str){
return false;
}
public void closeResultSet(ResultSet rs){
if(rs == null){
return;
}
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
public void closeConnection(Connection conn){
if(conn == null){
return;
}
try {
conn.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
“select mnames,micard from mtest where mnames=’?’ and micard = ‘?'”
改瞎橋埋成 “select mnames,micard from mtest where mnames=? and micard = ?”,去掉單引號。并且確認(rèn)傳入的兩個參量 mnames 和micard在set的消迅時候先磨螞輸出看下有沒有null
空指針 RSQ 這個報空指針了。
MYSQL數(shù)據(jù)庫有問題
MySQL命令行導(dǎo)出數(shù)據(jù)庫:
1,進(jìn)入MySQL目錄下的bin文件夾:cd MySQL中到bin文件夾的目錄
如我輸入的命令行:cd C:\Program Files\MySQL\MySQL Server 4.1\bin
(或者直接將windows的環(huán)孝橡境變量path中添加該目錄)
2,導(dǎo)出數(shù)據(jù)庫:mysqldump -u 用戶名 -p 數(shù)據(jù)庫名
> 導(dǎo)出的文件名
如我輸入的命令行:mysqldump -u root -p jluibmclub > d:\ jluibmclub
.sql (輸入后會讓你輸入進(jìn)入MySQL的密碼)
(如果導(dǎo)出單張表的話在數(shù)據(jù)庫名后面輸入表名即可)
在用命令做數(shù)據(jù)庫備份過程在cmd命令框中輸入C:/mysql/bin>mysqldump -uroot -p jluibmclub>
d:\ jluibmclub .sql ;
報錯信息:mysqldump: Got error: 1049: Unknown database
‘ jluibmclub ;’ when selecting the database ,識別不了 jluibmclub 這個數(shù)據(jù)庫。
但是我在:
mysql> show databases;
顯示:
+-+
| Database |
+-+
| jpa |
+-+
mysql>use jpa;
顯示:
Database changed
其原因很簡單,只要記住一點。沒進(jìn)入mysql環(huán)境不算執(zhí)行sql語句,所以不用在其后加入逗號(“;”)。
如果進(jìn)入mysql環(huán)境mysql> ,則輸入的語句屬于sql語句了,在其最后一定要加上逗號(“;”)。
3、會看到文件news.sql自動生成到d盤下文件,如果不指定盤符默認(rèn)在bin目錄下。
命令行導(dǎo)入數(shù)據(jù)庫:
1,進(jìn)入MySQL:mysql -u 用戶名 -p
如我輸入的命令行:mysql -u root -p (輸入同樣后會讓你輸入MySQL的密碼)
2,在MySQL-Front中新建你要建的數(shù)據(jù)庫,這時是空數(shù)據(jù)庫,如新建一個名老慎辯為news的目標(biāo)數(shù)據(jù)庫
3,輸入:mysql>use 目標(biāo)數(shù)據(jù)庫名
如我輸入的命令行:mysql>use news;
4,導(dǎo)入文件:mysql>source 導(dǎo)入的文件名;
如我輸入的命令行:mysql>source
news.sql(如果在bin目錄侍缺下用相對路徑名,如果在其他目錄下用絕對目錄名);
MySQL備份和還原,都是利用mysqldump、mysql和source命令來完成的。
關(guān)于數(shù)據(jù)庫1372錯誤的介紹到此就結(jié)束了,不知道你從中找到你需要的信息了嗎 ?如果你還想了解更多這方面的信息,記得收藏關(guān)注本站。
成都創(chuàng)新互聯(lián)科技公司主營:網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、小程序制作、成都軟件開發(fā)、網(wǎng)頁設(shè)計、微信開發(fā)、成都小程序開發(fā)、網(wǎng)站制作、網(wǎng)站開發(fā)等業(yè)務(wù),是專業(yè)的成都做小程序公司、成都網(wǎng)站建設(shè)公司、成都做網(wǎng)站的公司。創(chuàng)新互聯(lián)公司集小程序制作創(chuàng)意,網(wǎng)站制作策劃,畫冊、網(wǎng)頁、VI設(shè)計,網(wǎng)站、軟件、微信、小程序開發(fā)于一體。
名稱欄目:解決數(shù)據(jù)庫1372錯誤問題的方法(數(shù)據(jù)庫1372錯誤)
文章來源:http://fisionsoft.com.cn/article/cohgepi.html


咨詢
建站咨詢
