|
|
2013年2月4日
摘要:
操作数据库过程中,提示分布式事务处理等待锁时,如下图:则说明操作的记录被锁住或死锁了,如果是死锁,则需要使用以下SQL查询出相应的锁:select A.sid, b.serial#, decode(A.type, 'MR', 'Media Recovery', 'RT','Redo Thread', 'UN','User Name', 'TX', 'Transaction', 'TM', 'DML', 'UL', 阅读全文
摘要:
在PowerBuilder的应用程序开发过程中,对数据库中数据进行操作的对象是数据窗口对象(DataWindow),利用数据窗口对象,我们可以十分方便地完成对数据库中已经存在的表中数据进行检索、查询、插入、删除和更新。但是,在实际问题中,我们常常遇到数据库中的一些表是用户在程序运行期间动态生成的,若要对这样表中的数据进行操作,就要运用动态数据窗口对象,值得提到的一点是,在动态数据窗口对象生成时,其标题区(Header Band)中的文本不能直接显示成汉字,这的确是一点遗憾,不过这个问题可以通过映射的方法得到解决。一、 问题的提出 设有如下两张表:A表中的记录是用户可以在程序运行期间进行自由增加 阅读全文
摘要:
1 使DataWindow列只能追加不能修改 如何使DataWindow中的数据只能追加新记录而不能修改,利用 Column 的 Protect 属性可以很方便的做到这一点,方法如下: 将每一列的 Protect 属性设置为: If( IsRowNew(), 0, 1) ) 在 PowerScript 中可以动态修改 Protect 属性: dw_1.Modify("column_name_here.Protect='1~tIf(IsRowNew(),0,1)'") 这样,DataWindow 中只有新追加的记录可修改,而其他记录是只读的。2 如何在Data 阅读全文
摘要:
DataWindow.Net系列参考链接 阅读全文
摘要:
在编制管理信息应用系统中,一般都会遇到一个共同问题,那就是如何根据不同情况去控制表中的数据列,比如对于同一DATAWINDOW不同的用户有不同的操作(如对于数据录入人员可以更改数据,而对于查询人员一般不能更改数据),下面就以一个简单的工资表为例来说明利用PB如何在DATAWINDOW中控制列的修改方式。工资表基本列如下:代码 姓名 工作时间 基础工资 浮动工资 岗位工资 知识分子补贴 其它工资 code name workdata basesa movesa stationsa bt othersa char varchar char decimal decimal decimal deci. 阅读全文
摘要:
(1)C#里设置DataWindow的横向纵向打印方式 //按照打印设置打印 p_dwView.PrintProperties.Orientation = Sybase.DataWindow.PrintProperties.PrintOrientation.Default; //横向打印 p_dwView.PrintProperties.Orientation = Sybase.DataWindow.PrintProperties.PrintOrientation.Landscape; //纵向打印 p_dwView.PrintProperties.Orientation = Sybase.D 阅读全文
摘要:
#region 定义全局变量 /// <summary> /// 表头列前缀 /// </summary> private string m_strColumnNameHeader = "headercolumn"; /// <summary> /// 当前排序的列 /// </summary> private string m_strCurrentSortColumn = "1"; /// <summary> /// 当前排... 阅读全文
摘要:
如动态修改线条的长度: ds.Modify("line.y2='100 ~t if(page()=1, 200, if(page()=2, 300, if(page() = 3, 400, 100)))'");注意if的嵌套,是if(c1, t1, if(c2, t2, f2))。其中~t不是其含义,还有~t前要加个值,是否为初始值?page()是求当前页数。 阅读全文
摘要:
PowerBuilder中,DataWindow是用户前端用来存储、操纵数据的对象。在每一个DataWindow对象中有4个二维表作为数据缓冲区,用来存储查询到的数据。用户在DataWindow中对数据处理系统内部的操作实际上都是将数据在这几个缓冲区中进行的修改和移动,最后在用户提交数据库时,系统根据这四个缓冲区中的信息形成SQL的IN-SERT,UPDATE,DELETE等语句。这四个缓冲区是:PrimaryBuffer这个缓冲区是存放填充窗口中DataWindow控件中数据的,调用DataWindow的Retrieve()函数和InsertRow()函数可以将数据填入这个缓冲区中。当使用有 阅读全文
摘要:
WinForm Control - DataGridView 编程36计 阅读全文
摘要:
具体要注意的: 1.应尽量避免在 where 子句中对字段进行 null 值判断,否则将导致引擎放弃使用索引而进行全表扫描,如: select id from t where num is null 可以在num上设置默认值0,确保表中num列没有null值,然后这样查询: select id from t where num=0 2.应尽量避免在 where 子句中使用!=或<>操作符,否则将引擎放弃使用索引而进行全表扫描。优化器将无法通过索引来确定将要命中的行数,因此需要搜索该表的所有行。 3.应尽量避免在 where 子句中使用 or 来连接条件,否则将导致引擎放弃使用索引而 阅读全文
摘要:
注:N表示数字型,C表示字符型,D表示日期型,[]表示内中参数可被忽略,fmt表示格式。 单值函数在查询中返回单个值,可被应用到select,where子句,start with以及connect by 子句和having子句。 (一).数值型函数(Number Functions) 数值型函数输入数字型参数并返回数值型的值。多数该类函数的返回值支持38位小数点,诸如:COS, COSH, EXP, LN, LOG, SIN, SINH, SQRT, TAN, and TANH 支持36位小数点。ACOS, ASIN, ATAN, and ATAN2支持30位小数点。 1、MOD... 阅读全文
摘要:
1 VSS概述 版本控制是工作组软件开发中的重要方面,它能防止意外的文件丢失、允许反追踪到早期版本、并能对版本进行分支、合并和管理。在软件开发和您需要比较两种版本的文件或找回早期版本的文件时,源代码的控制是非常有用的。 Visual SourceSafe 是一种源代码控制系统,它提供了完善的版本和配置管理功能,以及安全保护和跟踪检查功能。VSS通过将有关项目文档(包括文本文件、图象文件、二进制文件、声音文件、视屏文件)存入数据库进行项目研发管理工作。用户可以根据需要随时快速有效地共享文件。文件一旦被添加进VSS,它的每次改动都会被记录下来,用户可以恢复文件的早期版本,项目组的其他成员也可以看到 阅读全文
摘要:
(注:如果你在Vs.net中要用到Oracle 9i 数据库,这篇文章就有点帮助)Oracle为dotNet开发人员提供了全新的开发包ODP.NET,ODP.NET是为微软dotNet应用程序所提供的一套高效的访问Oracle数据库开发包。 现在最新的版本为:Oracle Data Provider for .NET Release 9.2.0.2.102(74M) 下载地址: http://otn.oracle.com/tech/windows/odpnet,下载前需要先作为OTN用户登录(OTN注册地址:http://profile.oracle.com/jsp/reg/register. 阅读全文
摘要:
1、利用ORACLE NET MANAGER工具 1)打开 ORACLE NET MANAGER 2)增加"服务命名" 第一步 NET服务名:任意填写 第二步 通讯协议:如果连接远程机器上的ORACLE,选择TCP/IP(internet协议) 第三步 主机名:输入IP地址 端口号:一般缺省为1521 第四步 SID: 一般和数据库名字相同 第五步 测试 3)启动PL/SQL连接 2、直接修改配置文件: 1)打开目录D:\oracle安装目录\ora92\network\admin中的文件tnsnames.ora。 2)增加如下代... 阅读全文
摘要:
重新安装了一篇还不行,差点就有了重新安装系统的心了,幸好找到了解决方案。VMDebugger导致VS2005无法启动 电脑上装的是VS2005+sp1,前一段时间装了VMware用,后来因为启动速度慢,把VMware的四个服务给改成了手动启动,结果就出现了VS2005启动时只显示到启动界面就定住的情况。发现了原因是VMware装上后在VS2005上添加了一个VMDebugger工具栏,VMware服务没有加载,就导致了VS2005无法启动。然后在工具->外接程序管理器中把启动选项去掉,但是下次启动VS2005依然加载VMDebugger,有点流氓了哈….终于Google到一个老外的Blo 阅读全文
摘要:
方法1、SELECT a,replace(wmsys.wm_concat(b),',','') FROM 表名 t GROUP BY a;方法2、select deptno,ename_path from (select deptno,ename_path, row_number() over(partition by deptno order by deptno,curr_level desc) ename_path_rank from (select deptno,ename,rank,level as curr_level, ltrim(sys_conne 阅读全文
摘要:
本文演示一个简单的办法,并使用程序将一个dataset中的内容填充到指定的格子中,目的是尽可能的通用,从而避免C#代码必须知道Excel文件中字段和内容的位置的情况。 先制作一个简单的Excel文件作为模板,为了防止要填充的Cell中的内容和标题的内容一样,所以要填充内容的Cell中的内容是“$” + 字段名(要和DataTable中的列名一致),效果如图:创建一个Winform程序,给窗体上添加两个按钮,代码分别为: 创建Xml:private void button1_Click(object sender, EventArgs e) { DataCol... 阅读全文
摘要:
在Excel中,如果某个单元格的内容是数字,且比较长,默认情况下,会变为科学计数发表示,例如:123456789123456000会被表示为1.2345E+17,为了能够将数字按照普通的格式完全表示,就需要设置单元格的属性 ,下面是例子代码: Excel.Application m_objExcel = null; Excel._Workbook m_objBook = null; Excel.Sheets m_objSheets = null; Excel._Worksheet m_objSheet = null; ... 阅读全文
摘要:
在Excel中,行和列实际上仍然是Range,只不过取得行和列的方法和前面几篇随笔出现的有点不同,要使用Worksheet的Rows和Columns属性的get_Item方法,下面是例子代码,演示了怎样选中行,并且在行之间复制数据,和插入行:ThisApplication = new Excel.Application();ThisWorkbook = ThisApplication.Workbooks.Open("z:\\Book1.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Mis 阅读全文
|