我用的是textbox1.text應(yīng)該也算是變量..你那種我沒有試過
創(chuàng)新互聯(lián)建站專注于開州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗。 熱誠為您提供開州營銷型網(wǎng)站建設(shè),開州網(wǎng)站制作、開州網(wǎng)頁設(shè)計、開州網(wǎng)站官網(wǎng)定制、重慶小程序開發(fā)服務(wù),打造開州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供開州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
你把改成+試一下
我不知道行不行
String sql="insert into loginuser values('"+name+"','"+psw1+"')";
query.exec(QString("DELETE FROM information WHERE name='%1'").arg(name_del));
1可以在query.exec前,聲明QString sqlquery;將帶變量的sql語句放入sqlquery中
sqlquery=QObject::tr("insert into table values('%1','%2')").arg(value1,value2);
執(zhí)行query.exec(sqlquery);就可以了
2可以使用query.prepare()和query.bindvalue();
例如:
query.prepare("UPDATE table SET value1 = ? WHERE id = 1");
query.bindValue(0, 100);
query.exec();
SELECT
FirstName,
@flag:=1
AS
flag
FROM
user;
試下這樣
行不行
。
MySQL里
局部變量
用一個@標識,@flag:=1
就是使用
flag
變量保存數(shù)據(jù)
1,AS
設(shè)定它的別名。
用預(yù)編譯對象
PreparedStatement
例:
PreparedStatement pstmt = new PreparedStatement();
public static String select(int sno)
{
String sql = "select * from student where sno = ?";
try {
pstmt = conn.prepareStatement(sql);
pstmt.setInt(1, sno);
rs = pstmt.executeQuery();
while(rs.next())
{
message = "學(xué)號"+rs.getString("sno")+" 姓名"+rs.getString("sname")
}
} catch (SQLException e) {
e.printStackTrace();
}
finally
{
DBDao.close(rs, pstmt, conn);
}
return message;
}
mysql變量的術(shù)語分類:
1.用戶變量:以"@"開始,形式為"@變量名"
用戶變量跟mysql客戶端是綁定的,設(shè)置的變量,只對當前用戶使用的客戶端生效
2.全局變量:定義時,以如下兩種形式出現(xiàn),set GLOBAL 變量名? 或者? set @@global.變量名,對所有客戶端生效。只有具有super權(quán)限才可以設(shè)置全局變量
3.會話變量:只對連接的客戶端有效。
4.局部變量:作用范圍在begin到end語句塊之間。在該語句塊里設(shè)置的變量
declare語句專門用于定義局部變量。set語句是設(shè)置不同類型的變量,包括會話變量和全局變量
通俗理解術(shù)語之間的區(qū)別:
用戶定義的變量就叫用戶變量。這樣理解的話,會話變量和全局變量都可以是用戶定義的變量。只是他們是對當前客戶端生效還是對所有客戶端生效的區(qū)別了。所以,用戶變量包括了會話變量和全局變量
局部變量與用戶變量的區(qū)分在于兩點:
用戶變量是以"@"開頭的。局部變量沒有這個符號。
定義變量不同。用戶變量使用set語句,局部變量使用declare語句定義
作用范圍。局部變量只在begin-end語句塊之間有效。在begin-end語句塊運行完之后,局部變量就消失了。
所以,最后它們之間的層次關(guān)系是:變量包括局部變量和用戶變量。用戶變量包括會話變量和全局變量。
使用備忘,set @var 若沒有指定GLOBAL 或SESSION ,那么默認將會定義用戶變量
兩種方式定義用戶變量:
1."=",如 set @a =3,@a:=5
2.":="。select常常這樣使用
總結(jié):使用select 和set設(shè)置變量的區(qū)別,set可以使用以上兩種形式設(shè)置變量。而select只能使用":="的形式設(shè)置變量
實踐積累:用戶變量在mysql客戶端退出后,會自動消失。之后我打開客戶端,使用"select @a;" 顯示變了的值為null。說明,未定義的變量初始化是null
實際中的問題
設(shè)置常量對group_concat()的配置影響:
SET @@GROUP_CONCAT_MAX_LEN=4
手冊中提到設(shè)置的語法是這樣的:
SET [SESSION | GLOBAL] group_concat_max_len = val;
以下兩種形式都能達到達到同樣的效果,但是有什么區(qū)別?
SET @@global.GROUP_CONCAT_MAX_LEN=4;
global可以省略,那么就變成了:SET @@GROUP_CONCAT_MAX_LEN=4;
2011.2.25
之前的理解不怎么準確?,F(xiàn)在對加深理解后的地方進行總結(jié)。
mysql中變量的層次關(guān)系是:大體包括用戶變量和系統(tǒng)變量。系統(tǒng)變量包括系統(tǒng)會話變量和系統(tǒng)全局變量。
相互之間的區(qū)別:
因為用戶變量就是用戶定義的變量,系統(tǒng)變量就是mysql定義和維護的變量。所以,用戶變量與系統(tǒng)變量的區(qū)別在于,是誰在管理這些變量。mysql一啟動的時候就會讀取系統(tǒng)變量(這樣做目的是可以確定mysql的以何種機制或模式運行)。 系統(tǒng)會話變量與用戶變量都是在當前客戶端退出后消失。他們之間的區(qū)別可以這樣理解,雖然常常看到"set @@varible"的形式去改變系統(tǒng)變量的值,但是并不涉及到定義系統(tǒng)變量。用戶變量是可以自己定義(初始化)。系統(tǒng)變量按照只是在改變值。
局部變量只在begin-end語句塊中定義并有效。執(zhí)行到該語句塊之后就消失了。定義的方式有明顯的特點,使用declare語句。
使用系統(tǒng)變量理論上是可以使用兩種形式:
前面帶有符號"@@"
符號省略。比如我會看的如下形式:CURRENT_USER。但是,約定系統(tǒng)變量要使用"@@變量名"的形式,就是在前面加上符號"@@"
一、變量的定義
mysql中變量定義用declare來定義一局部變量,該變量的使用范圍只能在begin...end
塊中使用,變量必須定義在復(fù)合語句的開頭,并且是在其它語句之前,也可以同時申明多個變量,如果需要,可以使用default賦默認值。
定義一個變量語法如下:
declare
var_name[,...]
type[default
value]看一個變量定義實例
declare
last
date;二、mysql存儲過程變量賦值
變量的賦值可直接賦值與查詢賦值來操作,直接賦值可以用set來操作,可以是常量或表達式如果下
復(fù)制代碼
代碼如下:
set
var_name=
[,var_name
expr]...給上面的last變量賦值方法如下
set
last
=
date_sub(
current_date(),interval
1
month);下面看通過查詢給變量賦值,要求查詢返回的結(jié)果必須為一行,具體操作如下
select
col
into
var_name[,...]
table_expr我們來通過查詢給v_pay賦值。
create
function
get
_cost(p_custid
int,p_eff
datetime)
return
decimal(5,2)
deterministic
reads
sql
data
begin
declare
v_pay
decimail(5,2);
select
ifnull(
sum(pay.amount),0)
into
vpay
from
payment
where
pay.payd=p_eff
and
pay.custid=pid
reutrn
v_rent
+
v_over
-
v_pay;
end
$$
好了,這篇簡單的存儲過程中變量的定義賦值教程就到這里了,下面我們會接著講關(guān)于myql存儲過程的條件的定義與處理。
以下是其它網(wǎng)友的補充
在MySQL的存儲過程中,可以使用變量,它用于保存處理過程中的值。
定義變量使用DECLARE語句,語法格式如下:
DECLARE
var_name[,...]
type
[DEFAULT
value]
其中,var_name為變量名稱,type為MySQL支持的任何數(shù)據(jù)類型,可選項[DEFAULT
value]為變量指定默認值。一次可以定義多個同類型的變量,各變量名稱之間以逗號“,”隔開。
定義與使用變量時需要注意以下幾點:
◆
DECLARE語句必須用在DEGIN…END語句塊中,并且必須出現(xiàn)在DEGIN…END語句塊的最前面,即出現(xiàn)在其他語句之前。
◆
DECLARE定義的變量的作用范圍僅限于DECLARE語句所在的DEGIN…END塊內(nèi)及嵌套在該塊內(nèi)的其他DEGIN…END塊。
◆
存儲過程中的變量名不區(qū)分大小寫。
定義后的變量采用SET語句進行賦值,語法格式如下:
SET
var_name
=
expr
[,var_name
=
expr]
...
其中,var_name為變量名,expr為值或者返回值的表達式,可以使任何MySQL支持的返回值的表達式。一次可以為多個變量賦值,多個“變量名=值”對之間以逗號“,”隔開。
例如:
復(fù)制代碼
代碼如下:
begin
declare
no
varchar(20);
declare
title
varchar(30);
set
no='101010',title='存儲過程中定義變量與賦值';
end
提示:存儲過程中所有的關(guān)鍵字也是不區(qū)分大小寫的,如BEGIN可以寫出begin。