PB学习笔记之SQL语句

手把手教你搭建硬件在回路(HIL)仿真系统:从Simulink建模到实时测试 本文详细介绍了如何从零开始搭建硬件在回路(HIL)仿真系统,涵盖Simulink建模、实时仿真、代码生成及调试等关键步骤。通过具体配置示例和优化技巧,帮助开发者解决复杂控制系统验证中的技术难题,提升半实物仿真的效率和可靠性。 阅读详情
任何对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;
IP路由原理、静态路由及动态路由区分 什么是路由 路由是指导IP报文发送的路径信息。 直连路由:目的地所在网络与路由器直接相连。 间接路由:目的地所在网络与路由器非直接相连。 静态路由是由管理员手工配置而生成的路由。 动态路由路由器使用路由协议从其他路由器那里获悉的路由。 阅读详情

相关推荐

PB115的GUI例子,有些问题请有经验的朋友们完善并上传。

本例子来自PB11.5中Code Samples--Advanced GUI,我进行了简化修改,界面非常不错!但存在两个问题,请有经验的朋友帮忙完善修改并上传共享,主要问题如下:   1、打开的子窗口无法显示,好象显示在主窗口w_main后面了,(打开脚本:opensheet(w_test,w_main,1,Original!)。   2、选择导航控件的按钮后,怎样把对应的明细功能内容以树型结构方式显示在对应的控件上,界面如OutLook选择“邮件”时,按钮控件上面的框框显示的树型结构一样。

PB中常用函数Update的详细用法

函数语法:dwcontrol.Update ( { accept {, resetflag } } )  accept:   为True,表示在提交数据之前自动执行AccpetText函数,否则不执行该函数,该参数缺省为True。为False,表示在提交数据之前不自动执行AccpetText函数。 resetflag:为True,表示数据提交后自动清除修改标识,该参数缺省为Tr

jose_mourinho的专栏 7989

北京工业大学893考研真题(2014-2019年).zip

北京工业大学893考研真题(2014-2019年).zip

PB中用DataWindow.Update更新数据。

       大多数情况下,您的应用程序将在网络环境下运行。有可能会有多个人同时使用一个程序。在这种情况下使用数据窗口应注意并发控制问题。  数据窗口的并发性控制可以用"rows"菜单的"Update  Properties"项进行设定。  1.  Allow  Updates:如果选中,则整个数据窗口允许修改,否则不允许;  2.  Table  to  Update:在多表查询时,用该项选择要

wanglex的专栏 8440

PB】多表更新

原理分析: 数据窗口数据源来自两个或两个以上的表,相当于多个表连接建立的一个视图,对于这种数据窗口,PB默认是不能修改的。当然我们可以通过设置它的Update 属性,数据窗口的Update Properties用来设置数据窗口是否可Update、可Update的表、可Update列等,但不能同时设置两个表可更新;所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,

3762

PB动态SQL语句

PB动态SQL语句PowerBuilder的嵌入式SQL语句只能支持一些固定的标准的SQL语句,即在进行程序代码编译处理时这些SQL语句必须是确定的,另外这种方式也不能执行像Creat Table,Creat Database等这些数据库定义的语句(DDL)。因此这种嵌入式SQL语句在实际应用中有一定的局限性。为克服这种方式的局限性,可以使用动态

*冷鹰* 2662

PowerBuilder学习笔记(2)PBSQL语言

PowerBuilder学习笔记(2)PBSQL语言 (笔记记录于东莞裕元) 一.在PowerScript语言中使用SQL语句的注意点     PowerScript支持标准嵌入式SQL语句以及动态SQL语句.     可以使用数据库管理系统的保留字,例SELECT语句中使用数据库管理系统的内置函数     在SQL语句中可以使用常量和变量,使用变量需在变量前加冒号:     可以通

温故而知新 5396

PB中动态修改SQL语句

数据库应用程序通常进行一项确定的工作,在编写和编译时就可以确定完整的SQL语句,但是在编译时不能确定SQL语句的具体格式和参数时,只能在程序运行过程中构造SQL语句,需要使用动态SQL语句。以Format 4 动态SQL语句为例,使用格式如下: DECLARE Cursor | Procedure DYNAMIC CURSOR | PROCEDURE FOR Dynam...

tlammon的专栏 1402

PB执行动态SQL语句

PowerBuilder提供了四种格式的动态SQL语句 1.既无输入参数,也无结果集。 EXECUTE IMMEDIATE SQLStatement{USING TransactionObject}; TransactionObject是事务对象名,大括号表示该子句可以省略,省略时使用SQLCA。 Execute Immediate "Create Table table1( code...

nhwatertao的博客 3411

pb6与pb9的sql解析各不同

//数据窗口中的sql  SELECT *    FROM inp_reg_rcpt_no_rec     WHERE (( inp_reg_rcpt_no_rec.CASHER_NO = :as_operator ) OR     ( inp_reg_rcpt_no_rec.WIN_NO = :as_win_no )) AND           ( inp_reg_rcpt_no_rec.US

Ping的专栏 961

PB9对自定义SQL语句的检测很奇怪

结论 在PB9中,alter + update 组合语句需要注意分开写,两者之间加 go 也不行 举例: create + insert 组合语句SQLserver2008数据库执行成功 PB9执行成功 //语句一 ls_sql = "create table T_student (~r~n" +& "[id] [tinyint] IDENTITY(1,1) NOT NULL,~r~n" +& "[stu_id] .

吴半止的专栏 371

PB】动态SQL语句

所谓动态SQL语句是指部分或者整个SQL语句在运行时才能确定,这样的SQL语句可以用来设计能和用户进行更好交互的界面。因为参数的确定留给用户总比编程时由开发人员规定死要好得多。另外, PowerBuilder不支持有些SQL语句的嵌入执行,例如Create Table,Drop Table等,需要将这些SQL语句交给DBMS执行,而动态SQL语句都是将SQL语句交给DBMS执行的。这些都是要掌握动

1万+

pbsql server连接两种方式

Pb与数据库的连接有两种方式:通过 ODBC 与数据库连接 和 通过专用接口与数据库连接。   书上说通过 ODBC 方式连接数据库简单方便,但是数据库操作效率较低,因此对Oracle、SQL Server之类的大型数据库管理系统,PB都提供了专用接口,以提高操作效率。专用接口在设计上针对具体的DBMS特点而设计,能够充分发挥特定数据库的优势,因此使用专用接口可以大大提高应用程序访问数据库的速度,我们应该尽可能使用专用接口。而且使用 ODBC 连接数据库还需要新建数据源,而使用专用接口不用进行这些操作,只需

pengyw1987的博客 5992

PB中嵌入式SQL语句技巧1

PB嵌入式SQL中select语法在PB的语法中,每一个嵌入式select语句都必须带上from关键字和子句。

ding lan programming 3485

PB中执行SQL语句

PowerBuilder的嵌入式SQL语句只能支持一些固定的标准的SQL语句,即在进行程序代码编译处理时这些SQL语句必须是确定的,另外这种方式也不能执行像Creat Table,Creat Database等这些数据库定义的语句(DDL)。 因此这种嵌入式SQL语句在实际应用中有一定的局限性。为克服这种方式的局限性,可以使用动态SQL语句,这种方式可以完成嵌入式SQL语句无法实现的功能。如建库、...

ClearLoveQ的博客 4922

PB里执行写SQL语句

SQLHIS是PB里定义的连接字符串 SELECT YKLJ,YKJJ,YKPJ INTO:ldc_yklj,:ldc_ykjj,:ldc_ykpj FROM YF_KCMX_LS Where SBXH = :astr_kcmx[1].kcsb AND YPXH = :al_Ypxh USING SQLHIS;

小熊猫 1529

PB】在PB中嵌入式sql语句"in"的用法

一、首先,你不能像datawindow那样用数组名作为参数进行传值,因为在嵌入式sql语句中不支持只写数组名: 比如:如果是datawindow的话你可以这样写: string ls_jobids[] dw_1.retrieve(ls_jobids) 但是,如果是嵌入式sql语句,你如下面写法就是错误的,因为在PB中它不识别数组名: string  ls_jobids[] long l

8803

PB案例学习笔记】-36PB连接SQLite数据库

摘要 本文介绍了如何在PowerBuilder(PB)中连接SQLite数据库并查询数据。内容包括SQLite数据库的安装配置、创建员工信息表、插入测试数据,以及通过ODBC驱动实现PBSQLite的连接。文章详细展示了创建数据窗口、配置数据库连接的过程,并最终实现了一个简单的员工信息查询界面。通过该案例,读者可以掌握PB操作SQLite数据库的基本方法。配套源码已上传至Gitee仓库,适合有一定PB基础的开发者学习参考。

再小的帆也能远航,把分享变成一种习惯 1079
上一篇: 翻译原稿:SCJP Questions & Answers by Roseanne Zhang
下一篇: SCJP考试大纲
launzeboy
博客等级 码龄21年 1粉丝 19原创
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值