一 、怎样处理数据库中的NULL
Q:按照RDB理论,NULL与空格并不相同,有些情况下必须使用NULL。但程序语言中并不存在NULL这种数据类型,那么怎样处理中的NULL呢?
A:读取NULL时: Field.IsNull可以判断指定的静态字段是否为NULL。赋值NULL时:如果使用Table.Insert,则未赋值的字段都被赋值为NULL。 如果使用Table.Edit,则Fiels.Clear可以把指定的静态字段赋值为NULL。果使用Query,则按照标准SQL语句处理。
转:
Q:TSimpleDataSet的话:(这个在网上看的,没试过)
TSimpleDataSet.DataSet.CommandText:='insert into table t(num,time) values(5,:time)';
TSimpleDataSet.DataSet.ParamByName('name').AsTime:=Null;
TSimpleDataSet.Active:=true;
转:
或设置字段为
Delphi: Variants.Null 对应 C#: System.DBNull.Value
二、TTable的SetKey和GotoKey用法
如果想查找数据库表中的记录,必须想指定查找记录的一些字段的字段值,然后在表中进行检索,检索出与查找值相匹配的记录来。如果我们是在Paradox或dBASE数据库中的表中查找记录,那么查找值所对应的字段必须是表中的关键字段或辅助索引字段。如果查找SQL数据库服务器中的表,那么查找值必须是表的IndexFieldNames属性中指定的字段。
Delphi提供了两种方式在数据库表中查找记录:Goto方式和Find方式。这两种方式十分相似,它们的主要区别在于为查找指定查找值的方法不一样。
使用Goto方式进行数据查找使用的方法有SetKey方法、GotoKey方法和GotoNearest方法。其实际步骤如下:
①确保要查找的字段是关键字段或辅助索引字段。
②调用SetKey方法把与表对应的TTable部件置成查找状态。
③把查找值赋给相应的字段。
④调用GotoKey方法,并测试它的返回值检验查找是否成功。
假设Table1对应的表中第一个字段是关键字段,Edit1是应用窗体中的一个编辑框,用户可以通过Edit1输入查找值。下面的代码将通过Goto方式进行查找。
Table1.SetKey; {将Table1置成查找状态}
Table1.Field[0].AsString := Edit1.Text; {指定查找值}
Table1.GotoKey; {进行查找}
上面最后一行代码是根据用户指定的查找值,在表中执行查找。查找的结果有两种,也许成功也许失败,这是由调用GotoKey方法之后返回的布尔值来决定,如果返回True,那么查找成功,并且记录指针会指向与查找值匹配的记录,如果返回Fale,那么查找失败,记录指针的位置不发生变化。下面的代码可以测试调用GotoKey方法之后的返回值,告知用户查找是否成功。
Table1.SetKey;
Table1.Field[0].AsString:= 'Smith';
If not Table1.GotoKey then
ShowMessage('记录没找到')
在这一段代码中,如果在表中没有找到第一个字段值为Smith的记录,该应用程序会弹出一个对话框告知用户“记录没有找到”。
如果在表中存在多个关键字段或辅助索引中包含多个字段时,你在进行查找时,只想为第一个字段指定查找值,那么必须要设置TTable部件的KeyFieldCount的属性值为1。如果想为多个字段指定查找值,只能为相邻的字段指定查找值,例如辅助索引中共有三个字段,那么我们只能为第一个字段、第一和第二个字段、第一和第二以及第三个字段指定查找值,而不能为第一和第三个字段指定查找值。
转自:
三、$符号
$12 表示16进制的12。
Char($27)就是ASCII码为27的单引号。 sTmp1:='UserName =' + Char($27) + 'LiMing' + Char($27);
那么sTmp1字符串内容是 UserName='Liming' 在LiMing的两边是有加上两个单引号的字符串
转自:
四、TString TStrings
s:String 第一个数组元素默认下标从1开始,s[0]存放s的长度.
ts: TStrings 下标从0开始.
五 var参数
函数过过程var参数表示引用参数传递.
转自:http://www.cnblogs.com/xiongyingfeixiang/archive/2012/01/13/2321493.html
六 一些日期时间有关的
1 RecodeDateTime(....)过程,给一个时间设置它年月日时分秒为何值等数据.
RecodeHour(...)给一个时间变量设置它的小时值, RecodeYear(...)给一个时间变量重新设置它的年份,还有RecodeDay(..)等等类似
2 Hourof(..)返回一个时间的小时部分值, YearOf(..)返回一个日期时间的年份, 还有其它的类似与1中相对应
阅读(2716) | 评论(0) | 转发(0) |