分享
 
 
 

PB学习笔记之SQL语句

王朝mssql·作者佚名  2006-01-10
窄屏简体版  字體: |||超大  

任何对sql类数据库操作的语言必学的:),下面的是PB版本,有一些PB的特性.





SQL语句

sql语句以;结束,可写成多行形式而不用&

1、SELECT

注意:变量前加:

一个例子:

SELECT Employee.Emp_id,Employee.Emp_name,

Employee.Emp_salary,Dept.Dept_name

FROM Employee,Dept

WHERE (Emp_name like '张%')AND (Emp_sex='男')

AND Employee.Dept_id=Dept.Dept_id

ORDER BY Employee.Emp_id;



给变量的例子:

Dec Emp_salary

SELECT max(Emp_salary)

INTO :Emp_salary

FROM Employee;





2、INSERT

一个例子:

Int Emp_nbr

String Emp_name

Emp_nbr=Integer(sle_number.Text)

Emp_name=sle_name.Text

INSERT INTO Employee(employee.Emp_nbr,employee.Emp_name)

 VALUES(:Emp_nbr,:Emp_name)

USING Emp_tran;



3、UPDATE

一个例子:

UPDATE Employee//表名

SET emp_name=:sle_Name.Text //修改

 WHERE Employee.emp_nbr=:Emp_nbr;//修改条件



4、DELETE

一个例子:

DELETE FROM Employee //从表Employee

 WHERE Emp_nbr <100;删除条件满足的记录

5、CONNECT和DISCONNECT

执行DISCONNECT前自动执行COMMIT

6、COMMIT和ROLLBACK

7、使用游标(用来保存多条记录操作)

DECLARE,OPEN,FECTH...INTO...:NAME,CLOSE,DELETE(删除游标指向的记录),UPDATE(修改游标指向的记录)

利用游标打开多个记录的例子

//声明powerscript变量,存放读出的雇员姓名

String emp_cur CURSOR FOR

 SELECT emp_name FROM EMPLOYEE

 WHERE emp_state=:sle_1.text;

//打开游标,执行SELECT语句

OPEN emp_cur;

//从结果集中取第一条记录

FETCH emp_cur INTO "emp_name_var;

//判断FETCH语句执行情况

IF SQLCA.SQLCode<0 THEN

 MessageBox("Datebase Error",&//显示错误信息

 SQLCA.SQLErrText,Exclamation!)

RETURN

END IF

//如果FETCH语句执行正确,用循环语句逐条取结果集中的记录,到取完

DO WHILE SQLCA.SQLCode=0 //是否取完数据

//把取出的雇员姓名加入下拉列表框中

dlbl_1.additem(emp_name_var)

//继续从结果集中取下一符合条件的数据

FETCH emp_cur INTO :emp_name_var;

LOOP

//关闭游标

CLOSE emp_cur;



8、处理BLOB型数据(大部分语句只能对一条记录进行操作,多余则出错)

SELECTBLOB,



一个例子:

//声明BLOB型变量Emp_id_pic,用语存放Emp_pic列的数据

Blob Emp_pic

SELECTBLOB Emp_pic

 INTO :Emp_id_pic

 FROM Employee

 WHERE Employee.Emp_Id="001"

 USING Emp_tran;

//如果执行正确,在pb_1中显示照片

IF Emp_tran.SQLCode=0 THEN

pb1.SetPicture(Emp_id_pic)

END IF



UPDATEBLOB

一个例子:

Integer fh

Blob Emp_id_pic

//以读方式打开一个流模式文件

fh=FileOpen("c:\emp_100.bmp",StreamMode!)

//判断打开文件是否成功

IF fh<>-1 THEN

//从文件中读取图形数据存于Blob型变量

 FileRead(fh,emp_id_pic)

//关闭文件

 FileClose(fh)

//修改表的emp_pic列

UPDATEBLOB Employee

SET emp_pic=:Emp_id_pic

 WHERE EMp-Id="001";

END IF

IF SQLCA.SQLNRows>0 THEN//判断是否返回结果

 COMMIT;/提交事务

ELSE

ROLLBACK;//回滚事务

END IF



9、动态SQL语句

事务对象,动态描述区(SQLSA),动态描述区(SQLCA)

示例1:

String Mysql

Mysql ="CREAT TABLE Employee"&

 +"(emp_id char(6)not null,"&

 +"emp_hbr integer not null,"&

 +"dept_id integer not null,"&

 +"emp_fname char(10) not null,"&

 +"emp_lname char(20) not null)"

EXCUTE IMMEDIATE :Mysql;

实例2:

EXCUTE IMMEDIATE "DROP TABLE Employee" USING My_trans;

等价于:

String Mysql

Mysql+"DROP TABLE Employee"

EXCUTE IMMEDIATE :Mysql USING My_trans



实例3:

//在表中插入记录

Int Dept_id_var=156

String Dept_name_var

SetNull(Dept_name_var)

CONNECT;//

PREPARE SQLCA //prepare的作用???

 FROM "INSERT INTO dept VALUES(?,?)";

EXCUTE SQLCA USING :Dept_id_var,:Dept_name_var;

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有