ado+access中,含变量的sql语句

iwill_chyw 2008-03-31 09:23:41
想实现这样一种功能:
大批量的写入数据,表内有ID,TIME.DATAA三个键
这三个都是变量
每写入一个数据,ID+1,TIME+1


请问在VC中,这样的语句怎么写才最简捷
谢谢
...全文
193 18 打赏 收藏 转发到动态 举报
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
meiZiNick 2008-05-01
  • 打赏
  • 举报
回复
lz要干嘛?
UltraBejing 2008-05-01
  • 打赏
  • 举报
回复
不知,帮顶
lyserver 2008-04-08
  • 打赏
  • 举报
回复
使用sprintf或wsprintf格式化SQL字符串,比如:
int nID=0;
int nTime=0;
char szSQL[100];

wsprintf(szSQL,"INSERT INTO 表名(字段1,字段2) VALUES(%s,%s)",nID,nTime);
pConnection.Execute(szSQL);
nID++;
nTime++;
iwill_chyw 2008-04-08
  • 打赏
  • 举报
回复
to tianloveyou
试了您的办法.还是不行.
tianloveyou 2008-04-07
  • 打赏
  • 举报
回复
CTime ctime=CTime::GetCurrentTime();//初使化为当前系统时间
CString strId;
int nId=1;
strId.Format("%d",nId++);//ID号自动加加
ctime+=60*60*24;//日期也加加
CString strSQL;

strSQL.Format( "insert table values('%s', '%s' ,'%s')" , strId,ctime.Format("%Y-%m-%d"));
shakaqrj 2008-04-01
  • 打赏
  • 举报
回复
将序列号的字段类型设为自动编号
用insert插入,插入的时候不要插入序列号这列
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
TO zaodt

我刚刚发给你的那个INSERT语句中已经包含了固定的字符串时间,程序也没有错误,运行过后打开相就的库,也找到了INSERT进去的数据

不过针对变量字符串时间,我还没有试过
我现在在查看MSDN,看看FORMAT怎么用的.
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
TO zaodt


好的,非常非常感谢您

学了不少东西

我尽量试试看

再次:Thanks a lot
zaodt 2008-03-31
  • 打赏
  • 举报
回复

在执行 SQL 语句前,先调试或者MessageBox看看语句是否正确。


如果问题一下解决不了,可以先做个简单的小例子学习一下。


比如,先插入一个固定的字符串时间;

做成以后,再换成可变的字符串时间。
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
TO:zaodt

呵呵,非常非常感谢
其实我对VC,对这个ADO这块确实不太懂,所以问出来的问题当然有失水准
我先查查MSDN关于FORMAT的用法,再看看可能自己做的出来

如果到时还是做不出来,就得有劳您了

谢谢
zaodt 2008-03-31
  • 打赏
  • 举报
回复


你知道为什么你不会吗?


就是因为你的基础没有打好,很多问题积到一起了,所以被卡住了。


我刚才特意用 SELECT 举例,果然你对 SQL 语句不熟悉。


你现在有2个地方不太懂:

1、SQL 语句

2、字符串的常用处理(格式化字符串)


我看还是这样,你把你的问题分析一下,然后有针对性的提问,


这样提问,你很快会得到满意的答案。
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
这次看的明白些了

谢谢

不过您举的例子是SELECT
我想用的是INSERT,INSERT 中好象没有WHERE子句吧,那如果没有WHERE子句,我如何用变量连接呢,我如何用FOR语句大批量的INSERT呢
非常感谢
我是新手.麻烦您
zaodt 2008-03-31
  • 打赏
  • 举报
回复

看来,你会用 ADO 执行 SQL 语句。


那就好办了,现在只要生成这条 SQL 语句就好了。

举个例子:

CString strName("Tom");
CString strSQL;

strSQL.Format( "SELECT * FROM YourTable WHERE stName = '%s' " , strName );
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
m_pConnection->Execute("INSERT INTO 电流(序列号,时间,电流值) VALUES(1,'2008-3-31 下午 16:36:24',36.526)",&ra,adCmdText);

依您的意思是...
麻烦你说的再明白些好么.谢谢
zaodt 2008-03-31
  • 打赏
  • 举报
回复

用 ADO 执行一条 SQL 语句,会吗?
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
to:zaodt
你说的我不是太明白

我用的字段名为序列号,时间,数据值
时间我取用系统时间,
这样的功能,用FOR语句...可以实现么
比如说我想写300个数据
zaodt 2008-03-31
  • 打赏
  • 举报
回复

首先,把你的3个字段名先改一下:

myID, myTime, myDate

不能使用关键字,那样会出错。

=====

另外,ACCESS 提供自动增长列,可以让 myID 自动增长。

=====

在程序中,先生成 SQL 语句,然后执行就可以了。
iwill_chyw 2008-03-31
  • 打赏
  • 举报
回复
想实现这样一种功能:
大批量的写入数据,表内有ID,TIME.DATE三个键
这三个都是变量
每写入一个数据变量DATE后,ID+1,TIME+1


请问在VC中,这样的语句怎么写才最简捷
谢谢

4,011

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 数据库
社区管理员
  • 数据库
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧