送分!(继续加分....)
送分!先送50分!答下面这个问题答得好就全给你!不够再加!!
用ADO联接MS ACCESS的数据库和使用InterBase的数据库时,在SQL语句里,转换各种数据类型时,比如日期TO字符、字符TO日期、字符TO整型、整型TO字符等等,在使用两种数据库时,分别使用什么样的转换函数?怎么样用?
注:DateToStr、StrToDate、StrToInt等等不能使用!
在MSACCESS里,我已经知道有一种方法可以把日期型数据转换成字符型数据,就是cstr(),但要是日期型字段的值是空(NULL)时就提示出错啦!有没有更好的转换函数?
问题点数:120、回复次数:34Top
1 楼lluunn007(书生)回复于 2001-08-01 15:00:24 得分 0
up~~Top
2 楼lluunn007(书生)回复于 2001-08-01 15:10:08 得分 0
用FormatString()
呵呵,我要100分。你加吧Top
3 楼lluunn007(书生)回复于 2001-08-01 15:10:51 得分 0
用FormatString()
Formats the TDateTime object using the format given by format.
AnsiString __fastcall FormatString(const AnsiString& format);
呵呵,我要100分。你加吧Top
4 楼byj168(byj168)回复于 2001-08-01 15:12:03 得分 0
用FormatString(),太贪了,我只要50分。Top
5 楼Sammo(三毛)回复于 2001-08-01 16:50:08 得分 0
你们也太贪心了吧!好!!既然这么开心,就加到100分!只要答得好,再加!!
你们只是说用FormatString,也太笼统了吧!
我要知道的是在SQL里的使用方法,而且是在不同数据库里的使用方法,请举例子!
不要只是列个函数出来!! ~O~Top
6 楼gqxs(我心㊣飞翔)回复于 2001-08-01 16:51:20 得分 0
gzTop
7 楼Sammo(三毛)回复于 2001-08-01 16:52:03 得分 0
To:gqxs(小龙)
你不要只是GZ呀!!!!帮帮忙呀!!!Top
8 楼Sammo(三毛)回复于 2001-08-01 16:55:03 得分 0
Shit!!!!!有分都没人要!!!!!Top
9 楼lluunn007(书生)回复于 2001-08-01 17:25:16 得分 0
我想要但是没人给
faint @_@Top
10 楼Sammo(三毛)回复于 2001-08-02 00:48:36 得分 0
谁答得好!!
我把分全给他!!!!!!!!!!!!!!!!!!
To:lluunn007(玉笛书生)
你都没有答问题,怎么给分你呀!!难道在这里的真的只看重分数吗?Top
11 楼Sammo(三毛)回复于 2001-08-02 01:20:07 得分 0
现在怎么连分数都没人要呀!!!!!
难道还嫌少吗?100分还嫌少呀??那要加到多少呀?!
这里是学术论坛还是嫌分论坛呀?哎~~~~~~~~~~~~ ~!_!~Top
12 楼Sammo(三毛)回复于 2001-08-02 01:59:35 得分 0
哎!!!!再加分!!!!!!给我点温暖啊!!!随便再提个问题:
我要实现的这样的功能:
将所有记录的“地址”字段里的所有含有“中国”字样的,替换成“中华人民共和国”,
比如说:有一个“地址”字段的内容是:中国台湾省,现在要把它替换成:中华人民共和国台湾省。用命令实现,只要有“中国”字样,全部替换成“中华人民共和国”,其他内容不变!
Top
13 楼lluunn007(书生)回复于 2001-08-02 09:16:17 得分 50
Query1->Close();
Query1->SQL->Text="select aa from XXX where aa like '%中国%' " //查表中含有的地址字段
try
{Query1->Open();}
catch(...){;}
while(Query1->Eof)
{
AnsiString address=Query1->FieldByName("aa")->AsString;//找出某条含‘中国’的字段
int len=address.Length();
for(int i=1;i<len;i++)
{
if(address.SubString(i,i+4)=="中国")
newadd=address.SubString(1,i)+"中华人民共和国"+address.SubString(i+4,len-i-4);
Query2->Close();
Query2->SQL->Text="update XXX set aa= '"+newadd+"' where aa='"+address+"'";//修改表
try
{
Query2->ExecSQL();
}
catch(...){;}
}
Query1->Next();
}
搞定 打完收工!Top
14 楼lluunn007(书生)回复于 2001-08-02 09:18:30 得分 0
Query1->Close();
Query1->SQL->Text="select aa from XXX where aa like '%中国%' " //查表中含有的地址字段
try
{Query1->Open();}
catch(...){;}
while(Query1->Eof)
{
AnsiString address=Query1->FieldByName("aa")->AsString;//找出某条含‘中国’的字段
int len=address.Length();
for(int i=1;i<len;i++)
{
if(address.SubString(i,i+4)=="中国")
newadd=address.SubString(1,i)+"中华人民共和国"+address.SubString(i+4,len-i-4);
Query2->Close();
Query2->SQL->Text="update XXX set aa= '"+newadd+"' where aa='"+address+"'";//修改表
try
{
Query2->ExecSQL();
}
catch(...){;}
}
Query1->Next();
}
Query1->Close()
搞定 打完收工!Top
15 楼yuyulily(打工仔)回复于 2001-08-02 09:25:48 得分 10
用StringReplace()试试
TReplaceFlags rf;
rf << rfReplaceAll;
AnsiString s=StringReplace("中国台湾省","中国","中华人民共和国", rf );
Edit1->Text = s;//Top
16 楼lluunn007(书生)回复于 2001-08-02 09:32:32 得分 0
呵呵,不能对同一个表同时进行读写。这样吧,在查询完以后你建个TList,将字符串修改后存进List,再在Query2中修改。Top
17 楼wjzhuang(程序猪)回复于 2001-08-02 09:42:36 得分 5
从数据库读出数据的时候的那个
...->AsString
...->AsInteger
...->AsDate
......
好像可以直接转化(我没用过)Top
18 楼lluunn007(书生)回复于 2001-08-02 10:14:44 得分 0
程序猪,听说你失恋了。你的QQ?
Top
19 楼dingzhenhhy(霸王龙)回复于 2001-08-02 11:25:35 得分 0
学习学习!Top
20 楼Sammo(三毛)回复于 2001-08-02 11:42:32 得分 0
To:lluunn007(玉笛书生)
谢谢!我先试试看!还有我在主题里提出的那个SQL里数据类型转换问题呢?可以帮忙解决吗?
对啦!你所说的:“呵呵,不能对同一个表同时进行读写。这样吧,在查询完以后你建个TList,将字符串修改后存进List,再在Query2中修改。 ”,是指你给出的代码不能读写数据库呀?
To:yuyulily(打工仔)
我是需要在数据库里进行数据替换,请你详细点说说好吗?
To:wjzhuang(痛苦中的程序猪)
谢谢程序猪!心情不好也来帮忙!谢谢啦!
AsString、AsInteger、AsDate等在语法里可以的,但SQL里好像不管用!怎么办呀?!有没有类似DateToStr()等这样好用方便的函数呢?Top
21 楼lluunn007(书生)回复于 2001-08-02 12:01:51 得分 0
是的,就是我的代码中Query2部分你拿出循环外用,循环内用个TList记录字符串,再在外面用个循环将TList中的值取出,并用来修改表中记录。Top
22 楼Sammo(三毛)回复于 2001-08-02 13:02:14 得分 0
Ok!!!我试试!!!谢谢!!可以的话,请帮忙写写代码好吗?!谢谢!!!Top
23 楼lluunn007(书生)回复于 2001-08-02 13:24:40 得分 0
我靠,代码也帮啊。Top
24 楼Sammo(三毛)回复于 2001-08-02 15:33:32 得分 0
不写就算嘛!!干嘛~~~~~~~~Top
25 楼lluunn007(书生)回复于 2001-08-02 15:51:26 得分 0
你先把这个帖子结了,再起个帖子,我帮你写代码吧 。哎~
Top
26 楼Sammo(三毛)回复于 2001-08-02 21:07:47 得分 0
哎~~~~~~~~~
老兄呀!!!这贴子的主要问题都还没有解决!我就要结贴啊?!不太合适吧!?
用ADO联接MS ACCESS的数据库和使用InterBase的数据库时,在SQL语句里,转换各种数据类型时,比如日期TO字符、字符TO日期、字符TO整型、整型TO字符等等,在使用两种数据库时,分别使用什么样的转换函数?怎么样用?
注:DateToStr、StrToDate、StrToInt等等不能使用!
在MSACCESS里,我已经知道有一种方法可以把日期型数据转换成字符型数据,就是cstr(),但要是日期型字段的值是空(NULL)时就提示出错啦!有没有更好的转换函数?Top
27 楼luhongjun(过江项羽)回复于 2001-08-02 22:57:45 得分 0
把分给我,我也不帮你写代码.Top
28 楼Sammo(三毛)回复于 2001-08-03 02:18:08 得分 0
哎!!!!!老兄们呀!!
我现在并没有要你们帮我写代码呀!!我只是想得到在SQL语句里转换数据类型的方法而已!~!_!~
“用ADO联接MS ACCESS的数据库和使用InterBase的数据库时,在SQL语句里,转换各种数据类型时,比如日期TO字符、字符TO日期、字符TO整型、整型TO字符等等,在使用两种数据库时,分别使用什么样的转换函数?怎么样用?”
注:DateToStr、StrToDate、StrToInt等等不能使用!
Top
29 楼Sammo(三毛)回复于 2001-08-03 02:25:37 得分 0
我真的有点搞不懂!为什么我提的下面这个问题没人会答!是我表达不清晰?还是真的没人懂这方面的知识呢?哪位大侠给我指点一下呀?
在使用M$和InterBase数据库时,在SQL语句里,怎么样转换各种数据类型?如:日期转字符、字符转日期等!
是真的没人懂还是怎么回事?请哪位高人指点一下!!!!谢谢!!!!!!!!!Top
30 楼hotyei(出于蓝胜于蓝)回复于 2001-08-03 08:26:07 得分 0
为什么不自己查查帮助文件?ACCESS及INTERBASE的帮助文件很全。 Top
31 楼mysun(蛤蟆)回复于 2001-08-03 09:26:08 得分 0
记得在oracle上有这么一种用法,老兄可以去试试一下,to_date(String).Top
32 楼Sammo(三毛)回复于 2001-08-03 13:02:05 得分 0
ACCESS及INTERBASE的帮助文件里无法找到呀~~~~~~~~Top
33 楼TR@SOE()回复于 2001-08-05 11:38:31 得分 55
仅遵SAMMO兄要我在此留言的台命。
Top
34 楼Sammo(三毛)回复于 2001-08-05 13:24:46 得分 0
不敢不敢!!谢谢啦!!Top




