
数据库类
aroc_lo
这个作者很懒,什么都没留下…
展开
-
编写复合型控件遇到的问题
组合控件开发原创 2025-03-26 09:48:33 · 758 阅读 · 0 评论 -
ADOQuery中使用Resync解决读取lookup数据不正确的问题
但仍然不完美,使用 Resync 会遍历QRY1 的每一行数据,最终会定位到最后一行数据。在 ADOQuery的fields 属性中,增加两个lookup字段 L_NAME ,L_QTY ,LOOKUP数据集 QTY_LOOK 到QTY1中。此时虽然可以刷新(相当于重新统计QRY1)的数据,但是这要重新在后台执行那个存储过程来”重置“QRY1的数据是可以解决这个问题。在使用 Delphi2007 的ADOQuery时,遇到一个看到的数据与读取 lookup 数据不一样的问题。就完美的解决了这种“原创 2024-06-14 15:45:33 · 470 阅读 · 0 评论 -
ADOConnection 打开EXCEL
'Provider=Microsoft.Jet.OLEDB.4.0;' + 'Data Source=' + Edt_ExcelFilePath.Text + ';' + 'Extended Properties=Excel 8.0;';原创 2022-01-20 11:16:06 · 790 阅读 · 0 评论 -
MSSQL FLOAT 的问题挺郁闷的
图中的 905 * 0.815 正常的计算结果为 737.575 ,四舍五入保留两位小数就应该是:737.58但是呢,如:jjjjj2 所显示竟然是:737.57 。其实真实的计算结果如:jjjj1所示:737.574999999。四舍五入保留两位小数自然就是不是预期应该的数了;这个名字,就是 float 的精度差的问题。将其转换为精度较好的类型后果再取四舍五入就好了。...原创 2021-07-09 10:51:01 · 294 阅读 · 0 评论 -
取字符串中第一个数字 与 最后一个数字的位置
DECLARE @str NVARCHAR(255) = 'YX807.起8款小折盒各入1个配件(其中7仔入3种),起大折盒,放8个小折盒入盒放板。'SELECT PATINDEX('%[0-9]%', @str) AS 第一个数字位置 , LEN(@str) - PATINDEX('%[0-9]%', REVERSE(@str)) + 1 AS 最后一个数字位置...原创 2021-06-11 10:12:55 · 930 阅读 · 1 评论 -
FDQuery 不能通过TRY...except 捕获错误的解决方法
procedure TDM_SYS.PubP_BatchSaveStdData(MastTbl: TFDQuery);var n:Integer;begin try if MastTbl.State in [dsedit,dsinsert] then MastTbl.Post; MastTbl.ApplyUpdates(0); //通过DEBUG,可以定位错在这里 except on e:Exception do begin ShowErrorMsg...原创 2021-01-11 10:18:35 · 496 阅读 · 0 评论 -
unigui 验证码生成
转载自:https://blog.youkuaiyun.com/tvmerp/article/details/107736457//验证码生成单元unit AuthenticodeGenerate;interfaceuses SysUtils, Windows, ExtCtrls, Graphics;function GenerateAuthenticode(const Img: TImage; const Len: Integer = 4): string;implementati.转载 2020-08-21 22:53:04 · 404 阅读 · 0 评论 -
FireDAC 连接SQL Server需要注意的
TFDConnection:FetchOptions.Mode 设置为fmAll, 返回全部结果, 否则默认只返回前50条, 效果与open以后再执行FetchAll一样ResourceOptions.SilentMode 设置为True, 就不需要FDGUIxWaitCursor之类的东西了, 同样也不再会自动改变鼠标样式, 默认是需要的TFDQuery:Resour...转载 2020-04-17 14:12:50 · 619 阅读 · 0 评论 -
uniGui 出现 [FireDAC][Phys][ODBC][Microsoft][ODBC SQL Server Driver]连接占线导致另一个 hstmt
之前觉得好玩,用 UniGui 帮一个朋友(开一间小公司)弄了一个管理上的小东西。使用的是 Delphi D10.1(Berlin)+ UniGui 1.0.0.1397 + fireDac + MSSQL2008 弄的,运行得还不错;后来新版本的DELPHI D10.3.2(RIO)版出来,就想玩玩。然后发现 UniGui 1.0.0.1397版安装不上,就装了 1.9.0.0.1506...原创 2019-11-14 09:17:08 · 2345 阅读 · 0 评论 -
ADO的数据泵
//==============================================================================// batCopy 先删除已存在的表,再创建新表,再往表中增加数据// batAppend 往已存在的表中追加数据// dsQuery 源数据集控件是TADOQUERY// dsTable 源数据集控件是TADOTABLE//转载 2013-07-07 23:41:54 · 632 阅读 · 0 评论 -
经常因为殊字符的问题导致查询异常
在日常的数据库软件开发中,有一些个特殊字符挺烦人。 比如 ' (单引号),如果有这个字符内就会有问题。在构建SQL语句的时间就要特殊处理它。 为了解决这个问题当然还有其它的方法,在这里我想从根源上解决,就是在保存数据时就自动替换为全角字符function PUBF_ConvertSpecialChar(const s:string):string;var nleng原创 2013-05-10 10:22:31 · 771 阅读 · 0 评论 -
DATASNAP 中的 OleVariant
OleVariant,COM的一种数据类型。MIDAS基于COM之上构建的,自然使用OleVariant作为数据序列格式。延续到现在最新的DATASNAP仍然支持它。TClientDataset.data,TClientDataset.delta,这俩个属性的类型都是OleVariant。OleVariant可以是string,integer,float...这个大家都知道,但它也可以转载 2013-07-03 00:43:52 · 1311 阅读 · 0 评论 -
SQL2000升级到了SQL2008遇到的问题之一
由于更换服务器(旧服务器windows2003+sql2000 + 至强5320*2 + 4GB内存,新服务器win2008+sql2008 + E7-4087*2 + 32GB内存)运行同一个存储过程,如:CREATE PROCEDURE [dbo].[MSP_XT_QryGetCLByGongChengDan]ASBEGIN SET NOCOUNT ON; CREATE T原创 2013-05-02 12:39:58 · 2210 阅读 · 0 评论 -
SQL Server中常用的特殊日期代码函数语句
1 ---上个月月初第一天select CONVERT(varchar(12) , DATEADD(mm,DATEDIFF(mm,0,dateadd(mm,-1,getdate())),0), 112 )---上个月月末最后一天select CONVERT(varchar(12),dateadd(ms,-3,DATEADD(mm,DATEDIFF(m,0,getdate()),0)), 11转载 2013-04-11 15:12:30 · 742 阅读 · 0 评论 -
收藏 SQL系统语句大全
1、用户查看当前用户的缺省表空间SQL>select username,default_tablespace from user_users;查看当前用户的角色SQL>select * from user_role_privs;查看当前用户的系统权限和表级权限SQL>select * from user_sys_privs;SQL>select * from转载 2013-04-01 15:10:35 · 621 阅读 · 0 评论 -
引用:初探Sql Server 执行计划及Sql查询优化
MSSQL优化之————探索MSSQL执行计划 最近总想整理下对MSSQL的一些理解与感悟,却一直没有心思和时间写,晚上无事便写了一篇探索MSSQL执行计划,本文讲执行计划但不仅限于讲执行计划。 网上的SQL优化的文章实在是很多,说实在的,我也曾经到处找这样的文章,什么不要使用IN了,什么OR了,什么AND了,很多很多,还有很多人拿出仅几S甚至几MS的时间差的例子来证明着什么(有转载 2013-04-01 15:06:46 · 522 阅读 · 0 评论 -
关于DCOM传递字符串数组!!
在三层开发中,为了安全,通常,不会将SQL语句直接传递到服务端;那有些功能又不能写死的软件中。。特殊是SQL。所以通常我们会在将一些SQL语句放在数据表中,给第一个SQL语句一个ID,这样在客户端,仅指定ID就行,可是对于一个带查询条件的SQL语句,就需要带一个依据传递到 服务器端了。比如:我们的数据表中存在:ID SQLSTRING1 SELE原创 2013-05-06 16:57:45 · 752 阅读 · 0 评论 -
关于sql的执行计划(推荐详细)
刚开始用SQL Server的时候,我没有用显示执行计划来对查询进行分析。我曾经一直认为我递交的SQL查询都是最优的,而忽略了查询性能究竟如何,从而对“执行计划”重视不够。在我职业初期,我只要能获取数据就很开心,而不去考虑数据是如何返回的,“执行计划”对我的查询作了什么工作。我以为SQL Server会自己去处理查询的性能问题的。作为一个刚进入IT行业或者刚学到新技术的软件工程师,在编写代码前不太转载 2013-04-01 15:05:17 · 618 阅读 · 0 评论 -
优化SQL Server的内存占用之执行缓存
在论坛上常见有朋友抱怨,说SQL Server太吃内存了。这里笔者根据经验简单介绍一下内存相关的调优知识。首先说明一下SQL Server内存占用由哪几部分组成。SQL Server占用的内存主要由三部分组成:数据缓存(Data Buffer)、执行缓存(Procedure Cache)、以及SQL Server引擎程序。SQL Server引擎程序所占用缓存一般相对变化不大,则我们进行内存调转载 2013-04-01 15:09:27 · 647 阅读 · 0 评论 -
使用SQL语句对重复记录查询、统计重复次数、删除重复数据
上周工作中数据库中出现了N多重复记录的情况,导致联合查询时数据异常。由于数据是客户提供的,当时并没有提供唯一标识列,而且也没预料到会出现重复数据。哎,大意了。后来对表中的数据进行了一次重复查询。1、查找表中重复记录,重复记录是根据单个字段来判断,并统计重复次数SELECT [字段],COUNT(0) AS 重复次数 FROM [表名] GROUP BY [字段] HAVING CO转载 2012-10-27 11:12:28 · 12258 阅读 · 2 评论 -
cxgrid的用法
cxGrid的使用方法1. 去掉cxgrid中台头的box ,在tableview1的ptionsview的groupbybox=false;2. 在GRID footer 中加入sum(列), tableview1的optionsviewàfooter=ture然后在cxGRid1的customize..中的summary 的footer.add需要合计的列kind= skSum转载 2012-10-27 11:09:32 · 1043 阅读 · 0 评论 -
用SQL语句添加删除修改字段
1.增加字段 alter table docdsp add dspcodechar(200)2.删除字段 ALTER TABLE table_NAME DROP COLUMNcolumn_NAME3.修改字段类型 ALTER TABLE table_name ALTER COLUMNcolumn_name new_data_type4.sp转载 2011-11-15 22:44:50 · 745 阅读 · 0 评论 -
SQL,纵向数据变为横向显示。
if object_id(tempdb.dbo.#tb) is not null drop table #tbcreate table #tb([Number] int,[StateCode] varchar(10),[Time] datetime)insert #tbselect 90031,NewCmd,2010-2-3 union allselect转载 2011-06-23 11:13:00 · 1568 阅读 · 0 评论 -
Delphi XE中类成员的访问权限
<br />1. 去掉cxGrid中台头的Box<br />解决:在tableview1的ptionsview的groupbybox=false;<br /> <br />*****************************************************************************<br /> <br />2.统计功能<br /><br />解决:(1) tableview<br />tableview1的optionsviewfooter原创 2011-04-09 23:07:00 · 1438 阅读 · 0 评论 -
cxGrid使用汇总
<br />1. 去掉cxGrid中台头的Box<br />解决:在tableview1的ptionsview的groupbybox=false;<br /> <br />*****************************************************************************<br /> <br />2.统计功能<br /><br />解决:(1) tableview<br />tableview1的optionsviewfooter=ture<原创 2011-04-09 23:02:00 · 3471 阅读 · 1 评论 -
Delphi三层开发小技巧:TClientDataSet的Delta妙用
Delphi做三层开发时,很多人都会在客户端放一个TClientDataSet,中间层远程数据模块就对应放一个TDataSetProvider,然后再连起来.其实这种方法很烦琐,而且程序痈肿不甘,不好维护.我们都知道TClientDataSet的Delta属性记录了数据的所有修改,应用它我们就可以方便的实现一个单表更新的通用方法. 首先,在中间层添加一个方法,就叫ApplyUpd转载 2013-07-29 16:30:01 · 1187 阅读 · 0 评论 -
SQL2008 SELECT 增加序号
在以前。。。要增加一个序号。需要使用类似:select id=identity(int,1,1),* into #temp from tablename 这样的语句,去生成一个表来使用,挺麻烦的SQL2008就没有那么麻烦了。create table #temp( AA varchar(10),BB varchar(10))insert into原创 2013-11-18 09:44:51 · 1010 阅读 · 0 评论 -
MSSQL2005+分组添加序号
表名:a字段1 字段21 a2 a3 a4 b5 b7 c8 cselect 字段1=row_number()over(partition by 字段2 order by getdate()),字段2from a得到字段1 字段21...转载 2019-07-16 16:02:43 · 362 阅读 · 0 评论 -
Delphi之MIDAS三层完美解决方案----中间层构建
思路:中间层与客户端通过三个关键的接口过程进行交互操作(GetData,SetData,GetspData)GetData:获取数据集。客户端传递数据集名称给中间层,中间层根据请求的数据集名称从数据库的配置文件中获取相关信息,与客户的的条件集合一起给合成SQL语句SetData:提交数据集。客户端传递修改后的数据集Delta与名称给中间层,中间层根据请求的数据集名称从数据库的配置文件中获取相关...转载 2019-04-01 08:27:13 · 2208 阅读 · 1 评论 -
数据表内的数据上下移动的方法;
一个很笨的方法procedure PubP_SetDatasetToEditStat(const D: TDataSet);begin if not (D.State in [dsEdit,dsInsert]) then D.Edit;end;//MoveType=0上移否则下移//NoMoveField 不移动数据列表,比如:主键列procedure PubP_Da...原创 2019-03-13 16:26:26 · 1281 阅读 · 0 评论 -
全国省市县SQL数据库(大全) MSSQL
CREATE TABLE [dbo].[Base_Area]( [ID] [INT] NOT NULL, [PID] [INT] NULL, [CityName] [VARCHAR](50) NULL, [Type] [INT] NULL, CONSTRAINT [PK_Base_Area] PRIMARY KEY CLUSTERED ( [ID] ASC) ON [PRIMAR...转载 2019-03-12 13:34:41 · 7163 阅读 · 0 评论 -
全国省市县SQL数据库(大全)
CREATE TABLE `city` ( `id` int(11) NOT NULL DEFAULT '0', `pid` int(11) DEFAULT NULL, `cityname` varchar(255) CHARACTER SET utf8 DEFAULT NULL, `type` int(11) DEFAULT NULL, PRIMARY KEY (`id`)...转载 2019-03-12 13:25:52 · 3037 阅读 · 2 评论 -
FireDAC返回多结果集
以前使用ADO, 如果SQL返回的结果集有多个 可以通过NextRecordset来依次获取代码移植到FireDAC, 对于多结果集处理差不多, 但是还是有一些不一样的地方:1.TDataSet本身是不支持多结果集的, 所以不要再这个上面浪费精力2.切换到下一个结果集, ADO.NextRecordset 对应 FD.NextRecordSet3.判断是否有下一个结果集, ADO的...转载 2019-01-31 08:53:35 · 1119 阅读 · 0 评论 -
MSSQL将字符串转换成列表格式
SET NOCOUNT ONDECLARE @SCDH VARCHAR(200),@BDBH VARCHAR(200)DECLARE @T TABLE(SCDH VARCHAR(20))SET @BDBH='HS18080045/HS18080047'SET @SCDH=@BDBH--方法1PRINT '方法1'IF CHARINDEX('/',@SCDH)=0 ...原创 2018-11-22 13:54:37 · 987 阅读 · 0 评论 -
SQL的日期格式
备用SELECT CONVERT(VARCHAR(40),GETDATE(),1) AS 时间,CAST('1' AS VARCHAR(10)) AS 格式代码 UNION ALLSELECT CONVERT(VARCHAR(40),GETDATE(),2),'2'UNION ALLSELECT CONVERT(VARCHAR(40),GETDATE(),3),'3'UNIO原创 2016-12-14 15:51:06 · 6687 阅读 · 0 评论 -
sql server cross/outer apply 用法
这是 sql server 帮助文档关于apply的描述: 使用 APPLY 运算符(2005或以上版本)可以为实现查询操作的外部表表达式返回的每个行调用表值函数。表值函数作为右输入,外部表表达式作为左输入。通过对右输入求值来获得左输入每一行的计算结果,生成的行被组合起来作为最终输出。APPLY 运算符生成的列的列表是左输入中的列集,后跟右输入返回的列的列表。 APPL原创 2016-11-23 15:27:02 · 7099 阅读 · 0 评论 -
关于ADOQuery 莫名其妙的问题;
在写数据库软件时。希望使用 ADOQuery 的缓存技术来处理数据;可是在软件开发过程中,出现了一个莫名其妙的问题;具体的设置等如下: ADOQuery 连接 ADOConnection (等。。这些不多说了)ADOQuery 的属性ADOQuery + DataSource + DBGrideh + 一些Ehlib 的输入组件(如:DBEditEh 等)分别创原创 2015-07-15 17:50:05 · 6819 阅读 · 0 评论 -
MySQL的学习(1)查询结果带行号的方法
从MSSQL转到MYSQL,有很多的不同。初次接触MYSQL,要学习的东西不少。MS宠坏了开发人员,它的产品均带有非常好的用户UI,比起其它数据库系统来说,MSSQL就有一个非常强大的管理工具。其它的数据库系统,如ORACAL。MYSQL。一般都要用第三方的GUI工具;---------------上面是废话,与本文无关---------------原创 2015-03-26 22:34:32 · 5463 阅读 · 0 评论 -
分组字符合并SQL语句
SQL code/*标题:按某字段合并字符串之一(简单合并)描述:将如下形式的数据按id字段合并value字段。id value----- ------1 aa1 bb2 aaa2 bbb2 ccc需要得到结果:id value------ -----------1 aa,bb2 aaa原创 2011-05-10 08:25:00 · 1083 阅读 · 2 评论 -
关于DATASNAP传递Record类型到客户端的问题
以前,使用 DELPHI XE 时,可以使用类型如下的代码来原创 2014-06-03 00:08:43 · 7542 阅读 · 0 评论