pb 中使用的游标,读出数据库多条记录赋值给某一数组,

pb 中使用的游标,读出数据库多条记录赋值给某一数组,,第1张

肯定可以回避啊,您把您游标赋值的完整语句写出来看看吧。

是您自己赋值控制的问题。

肯定是对于数组的计数器,自增长的控制的问题,是不是写在赋值的后边,就是游标里面的fetch前边,赋值后边写的i++?

这样最后一条的时候,这个i一定会自加1,而游标已经取值完毕,导致数组多了一个空值。

在PB 中建立新表

打开新建的表

单击数据库画板中的 数据 *** 作(Data manipulation) 按钮

选择菜单 Rows Import

文件类型 下拉框中选择dbaseII & III( dbf)

选择被导入文件所在的目录及文件名

单击 打开 按钮

系统将打开指定的文件 将该文件中的所有记录导入新建的表中

但系统不提供直接将导入数据保存在本数据库(表)中 如果要将导入的记录保存为SQL Anywhere 环境下的数据库(表)中 可以先将导入数据行以SQL格式保存在 sql 类型文件中 在利用SQL语句将这些数据行插入新表中 步骤如下

按上面所列的步骤导入数据库(DBF)文件中的数据

选择菜单 File Save Row As …

在 存为类型 列表框中选择 SQL

选择保存路径 输入保存文件名 单击保存

关闭 Data manipulation 窗口 回到数据库画板

单击 DB Administration (数据库管理器)

选择菜单 File Open

确信文件类型为 SQL ( sql)

选择第 步中所保存的文件 单击 打开 按钮

删除文件起始部分的第一条SQL语句 CREATE TABLE

单击 Execute (执行)按钮 系统将把原数据库中的所有行插入到新表中

需要注意的是 新建的表在字段设置上必须与原DBF文件中的字段保持一致 即 新表中的字段数必须等于或大于原DBF文件中的字段数

新表中的字段顺序要与原文件中的字段顺序一样 即使新表中字段数更多 但新的字段必须放在最后

新表与旧文件中字段名可以不一样

新表中的数据类型必须与旧表中的数据类型兼容 字符 字符 数值 数字 数字 字符……

数据格式相一致 如两个文件中的日期格式必须一致

新表中字段长度必须能容纳旧数据库文件中的对应字段中的数据 如 旧数据库某一字段宽度为C 但库中所有记录在该字段的实际最长为 那么 新表中的字段宽度至少应为C

如果你愿意 也可以将原FoxPro中的数据库先转换到TXT格式文件 再将TXT格式的文件导入SQL Anywhere数据库(表)中 不过TXT文件中一条记录独占一行 各字段间必须用Tab键(符)隔开 其导入方法与DBF文件中数据的导入方法类似

以上两种办法均可实现在Power Builder下访问FoxPro数据库 但两种方法之间有些不同之处

从系统需求来看 第一种方式使用ODBC直接访问DBF文件 只要Power Builder基本系统即可 不需要安装数据库管理系统(DBMS) 而第二种方式必须安装SQL Anywhere系统

从运行效率来看 第一种方式速度要慢一些 后一种方式稍快 笔者在应用程序中比较了两种方式在速度上的差异 将FoxPro系统中的一个有 余条记录的数据库 用第一种方式联接 在数据窗口控制中显示(Retieve)记录 需要 秒钟左右 后来又用第二种方式 在SQL Anywhere 中新建一个表 将这 条记录导入表中 联接 显示记录 需要时间为 秒 对另一个拥有 万余条记录的FoxPro数据库直接使用ODBC 联接 显示的时间为 秒钟

使用Power Builder 的主要优势体现在建立客户/服务器模式的系统上 对于一般的单机系统 规模较小的系统 可能大多数人不会想到它 但如果你觉得FoxPro太老土 Visual FoxPro又太难学的的话 不妨试试Power Builder

       编辑推荐

       ASP NET开发培训视频教程

       Microsoft NET框架程序设计视频教程

lishixinzhi/Article/program/PB/201311/24620

;   PowerBuilder(PB)是一种跨平台的且功能强大 性能优异的开发工具 在客户端/服务器系统结构的应用模式中 作为客户端的一种面向对象的可视化设计工具 在与数据库相连接 *** 作的系统中得到较为广泛的应用 笔者在使用PB开发Sybase数据库应用 建立企业管理信息系统的过程中 积累了一点经验和技巧 现将其中的一部分在此做点介绍 或许能够对朋友们有点启发和帮助

一 PowerBuilder与Sybase SQL Server的连接

若在连接时出现问题 必须要冷静多思考 首先要检查客户端的情况 确认Open Client已经安装 并正确配置 要注意OPen Client必须与PowerBuilder同为 位 或同为 位 PB与Sybase连不上 常见的几种错误现象及处理方法说明如下

已连接上Sybase数据库 但在PB的数据库(database)画板中却看不到用户已经定义过的表

此时可打开isql或Sybase Advantage 用 sa 登录到 master 数据库 执行pbsyc sql脚本文件(该文件位于PB安装盘的server目录)即可 值得一提的是 对Sybase Adaptive Server的版本号要加以注意 根据资料对有的相关项进行点改动

在打开PB的项目画板(Project)或库画板(Library)时 出现错误信息提示: cannot locate source management dll 这个问题是因为在安装PB时 选择了安装版本控制软件(如PVCS)的接口 实际上该用户的机器上并未安装相应的版本控制软件

解决方法: 在PB的设置中 将版本控制软件的接口去掉 具体 *** 作步骤是 可在PB ini文件中 找到[Library]节 将 SourceVendor= 这一行注释去掉

数据库连接正常 但打开用户表时若该表中有汉字则出现乱码

这个问题通常是由于客户端的缺省字符集设置和服务器端的字符集设置不一致 应修改locales dat文件(该文件位于Sybase安装目录的locales子目录下) 如果在Windows / *** 作系统下 可修改[NT]节下的相关内容

若 *** 作系统平台是Windows x 则修改[win ]节下的内容 在此节有一行文本为locale=default us_english is _ 则说明客户端的缺省字符集设为iso_ 开发中文管理信息系统一般建议将字符集改为cp o 在服务器端必须要做相应的调整

二 PB编程的几点技巧

在数据窗口(Datawindow)中实现数据列自动折行

PB软件在市场上受用户欢迎的原因之一 就是它的数据窗口功能很强 而且方便应用 在使用Datawindow时 常会遇到某列的数据太长 不能同时显示全部的情况 若采用自动水平滚动 *** 作起来又不够简便 有一种方法能实现列数据多行显示(自动折行) 具体步骤如下

① 在Datawindow Panter中打开此DataWindow 在需设定自动折行的列上双击鼠标 d开此列的属性窗口 点Position标签 选中Autosize Heigh多选框; 再选择Edit标签 不选中Auto HorzScroll多选框 单击OK按钮 保存所做的修改

② 点中Detail Band(即写有Detail的灰色长带) 单击鼠标右键 选择Properties 菜单项 选中Autosize Height多选框 单击OK按钮 保存所做的修改

lishixinzhi/Article/program/PB/201311/24574

如果是用自己的程序逻辑实现,那就要保存下max_id的值,每次插入新记录时,先用max_id+1去试,如果记录已存在,就再加1,直至找到没有被占用的ID。

也可以利用数据库本身提供的机能,每种数据库不同:

oracle:sequence,每次插入新记录时,先从sequence中取出新ID,再进行插入;

sqlserver:定义PK时,将其设为IDENTITY属性,插入时就可以自动地产生ID,不需要程序控制。插入后,利用SELECT @@IDENTITY取回刚刚插入记录的ID。

mysql:定义PK时,将其设为auto_increment,一样地自动产生新ID。插入后,利用mysql提供的mysql_insert_id()函数取回刚刚产生的ID。

实现分组dw 中序号cumulativeSum( if( 分组列名 [-1] = 分组列名 [0],0,1) for all )//做组内编号GetRow() - First(GetRow() for Group 1) + 1有三个函数可以灵活使用:CumulativePercent:取得包括当前行之前值占总数的百分点CumulativeSum:取得包括当前行之间的行的值的总数Percent:取得当前行值占总数的百分点用法(三个都相同):CumulativeSum ( column { FOR range }下面的表达式可取得分组1 的每一行的行号:CumulativeSum (1 FOR GROUP 1)range 的值可以这样写:ALL — (缺省) 取某列的当前行之前所有行的累积值GROUP n — 取某列的当前行之前,在分组中所有行的累积值。必须指定一个分组号。例如GROUP 1PAGE — 取某列的当前行之前,且在本页内所有行的累积值对于交叉表,可以这样指定 CROSSTAB 的范围:CROSSTAB — (只用于交叉表) 在交叉表中,取某列的当前行之前所有行的累积值对于图表和 OLE 对象, 可以使用下列方式之一:GRAPH — (只用于图表) The cumulative percentage of values in column in the range

以上就是关于pb 中使用的游标,读出数据库多条记录赋值给某一数组,全部的内容,包括:pb 中使用的游标,读出数据库多条记录赋值给某一数组,、在PB中使用FoxPro数据库的方法[2]、PB开发Sybase数据库应用技巧集锦[1]等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/sjk/9783168.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-01
下一篇 2023-05-01

发表评论

登录后才能评论

评论列表(0条)

保存