視窗中設有三個靜態文本框名字分別為sle_1、sle_2、sle_3。 下面設“添加”按鈕,clicked事件代碼
如下:(建立ASA資料庫時各屬性都用的char)
//定義字串,用于存盤學號,姓名和年齡
string sno, sna, age;
sno = sle_1.Text;
sna = sle_2.Text;
age = sle_3.Text;
//執行插入陳述句
Insert Into student Values(:sno,:sna,:age);
//如果能夠成功添加,則提交事務
if SQLCA.SQLNRows > 0 then
commit using SQLCA;
MessageBox("恭喜!","資料添加成功!");
close(xsxx_w);
xsxxx_w.my_dw.Retrieve()
else
//不能成功添加時,彈出錯誤提示框
MessageBox("錯誤!","資料添加失敗,請檢查輸入資料!");
end if
總是提醒:"資料添加失敗,請檢查輸入資料!",,,反復檢查了好久仍然解決不了,求各位大神幫忙!!
uj5u.com熱心網友回復:
string sno, sna, age;sno = sle_1.Text;
sna = sle_2.Text;
age = sle_3.Text;
//執行插入陳述句
sqlca.autocommit = false
Insert Into student Values(:sno,:sna,:age);
//如果能夠成功添加,則提交事務
if SQLCA.SQLcode > 0 then
commit using SQLCA;
MessageBox("恭喜!","資料添加成功!");
close(xsxx_w);
xsxxx_w.my_dw.Retrieve()
else
rollback using sqlca;
//不能成功添加時,彈出錯誤提示框
MessageBox("錯誤!","資料添加失敗,請檢查輸入資料!");
end if
uj5u.com熱心網友回復:
//執行插入陳述句Insert Into student Values(:sno,:sna,:age);
using sqlca;
uj5u.com熱心網友回復:
//執行插入陳述句Insert Into student Values(:sno,:sna,:age) using sqlca;
uj5u.com熱心網友回復:
測驗階段可以在MessageBox('錯誤','...' + sqlca.sqlerrtext)這樣可以顯示出出錯資訊。uj5u.com熱心網友回復:
還是不行吶uj5u.com熱心網友回復:
測驗階段可以在MessageBox('錯誤','...' + sqlca.sqlerrtext)這樣可以顯示出出錯資訊。uj5u.com熱心網友回復:
看下sqlca.sqlerrtext是什么,貼出來uj5u.com熱心網友回復:
資料庫建立連接了沒uj5u.com熱心網友回復:
為什么用 SQLCA.SQLNRows 來判斷成功與否? 我一直用sqlca.sqlcode來判斷的.uj5u.com熱心網友回復:
還有個問題,錯誤跳messagebox之前,應先做rollbackuj5u.com熱心網友回復:
sqlca.sqlerrtextuj5u.com熱心網友回復:
string sno, sna, age
sno = trim(sle_1.Text)
sna = trim(sle_2.Text)
age = trim(sle_3.Text)
if isnull(sle_1.Text) or trim(sle_1.Text) ="" then
messagebox("提示! ","為空,請輸入")
Retrun
end if
if isnull(sle_2.Text) or trim(sle_2.Text) ="" then
messagebox("提示! ","為空,請輸入")
Retrun
end if
if isnull(sle_3.Text) or trim(sle_3.Text) ="" then
messagebox("提示! ","為空,請輸入")
Retrun
end if
//執行插入陳述句
sqlca.autocommit = false
if
Insert Into student (欄位1,欄位2,欄位3) Values(:sno,:sna,:age)using sqlca;//如欄位1是自動增長就要取消sno 值的插入 例Insert Into student (欄位2,欄位3) Values(:sna,:age)using sqlca;
//如果能夠成功添加,則提交事務
if SQLCA.SQLcode = 0 then
commit using SQLCA;
MessageBox("恭喜!","資料添加成功!");
close(xsxx_w);
xsxxx_w.my_dw.Retrieve()
else
if SQLCA.SQLcode = -1 then
rollback using sqlca;
//不能成功添加時,彈出錯誤提示框
MessageBox("錯誤!","資料添加失敗,請檢查輸入資料!");
else
MessageBox("100!","Fetched row not found.!");
end if
end if
uj5u.com熱心網友回復:
SQLCA.SQLNRows是用來判斷update后成功的行數uj5u.com熱心網友回復:
sqlca.sqlcode用這個來做判斷,if sqlca.sqlcode = 0 then //這個是保存成功了
commit;
else
messagebox("插入錯誤", "錯誤資訊為:"+string(sqlca.sqlerrtext)) //這個是資料庫本身報出的錯誤
rollback;
end if
uj5u.com熱心網友回復:
用messagebox(string(sqlca.sqlcode),sqlca.sqlerrtext)看下具體的錯誤原因uj5u.com熱心網友回復:
string ls_err
if sqlca.sqlcode = 0 then //這個是保存成功了
commit;
else
ls_err=sqlca.sqlerrtext
rollback;
messagebox("插入錯誤", "錯誤資訊為:"+ls_err//這個是資料庫本身報出的錯誤
end if
一般是先回滾資料,再彈提示框,這樣可避免長時間的事務,占用資源,導致行程阻塞。
uj5u.com熱心網友回復:
提交成功以后才會有 SQLCA.SQLNRows,而不能根據這個判斷是否要提交轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/65214.html
標籤:腳本語言
上一篇:在PB中,OLE控制元件怎么使用
