用过access的进来!!

guanxianjun1979 2003-04-04 08:25:42
我现在用dephi+access作一套数据库软件,用ado连接,使用adoquery,我用adoquery.aql.add事件insert插入,例如,
表名pdm3kw
字段我我用的是汉字,不是英文,不知道可以否
字段:入设功率,反射功率。
instert into pdm3kw (入设功率,反射功率)values (p01,p02)
p01,p02为string
而入设功率,反射功率在access中数据类型为数字,字段大小为长整形,格式为常规数字,小数位数为自动。
我运行程序时提示查询值的数目与目标值的数目不同。
我用strytoint运行不了。请各位高手指点一下,我没有编过access数据库,谢谢!!
分不够在加!!!
...全文
28 31 打赏 收藏 转发到动态 举报
写回复
用AI写文章
31 条回复
切换为时间正序
请发表友善的回复…
发表回复
why984231 2003-04-05
  • 打赏
  • 举报
回复
delphi里这么用比较好!!
f_sign.qryMain.Close;
f_sign.qryMain.SQL.Clear;
f_sign.qryMain.SQL.Add('InsertInto pdm3kw2 (入设功率,反射功率)');
f_sign.qryMain.SQL.Add('Values(:p01, :p02)');
f_sign.qryMain.Parameters.ParamByName('p01').Value := strtoint(p01);
f_sign.qryMain.Parameters.ParamByName('p02').Value := strtoint(p02);
f_sign.qryMain.ExecSQL;
why984231 2003-04-05
  • 打赏
  • 举报
回复
这肯定是不行呀!!
你必须把p01,p02和入设功率,反射功率的数据类型设为一致
要么都为字符,要么都位数字!!
或者插入时转换成一样的,如:strtoint(p01);就变成数字型了,就可以插入了
还有,你的sql语句中的逗号要用英文的逗号,不要用中文的!!
guanxianjun1979 2003-04-05
  • 打赏
  • 举报
回复
各位高手,我把我的数据库给你们发过去,你们帮我看看,谢谢!!邮箱地址给我
急!!!!!
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
试了,intsert into 语句语法错误!
WGYKING 2003-04-04
  • 打赏
  • 举报
回复
ADOQUERY1。CLOSE;//关闭
adoquery1.SQL.Clear;
adoquery1.sql.add('insert into pdm3kw2 (入设功率,反射功率)values ('+p01+','+p02+')' );
ADOQUERY1.ExecSQL;
试了没?
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
我用的就时上面的代码,麻烦大家帮我看一下。
mikko11 2003-04-04
  • 打赏
  • 举报
回复
我用你的这段insert into的代码没出错嘛,其他地方你再查一下有没有错
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
我改成英文也出现insert into 错误.
WGYKING 2003-04-04
  • 打赏
  • 举报
回复
我认为无所谓,字段名是汉字没什么影响的
chenjun 2003-04-04
  • 打赏
  • 举报
回复
从你的语句中看不出什么问题,在Delphi中,表的字段最好不要为汉字,否则会出现一些意想不到的错误,你将表中的字段改为英文字符试一下。
WGYKING 2003-04-04
  • 打赏
  • 举报
回复
1。ADOQUERY1。CLOSE;//关闭
adoquery1.SQL.Clear;
adoquery1.sql.add('insert into pdm3kw2 (入设功率,反射功率)values ('+p01+','+p02+')' );
ADOQUERY1.ExecSQL;
2。建议使用动态参数
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;

type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
ADOConnection1: TADOConnection;
ADOQuery1: TADOQuery;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);
var
str:string;
mystr:array [0..120] of char;
m1,m2,m3,m4,m5,m6,m7,m8,m9,n1,n2,n3,n4,n5,n6,n7,n8:integer;
p01,p02,a01,v15,v11,v12,v13,t01:string;
begin
str:='G001P010.74G001P020.00G001A0111.7G001V1572.5G001V1127.2G001V1215.9G001V1315.6G001T01000374';
strcopy(mystr,Pchar(str));
m1:=pos('P01',mystr);
P01:=copy(mystr,m1+3,4);
m2:=pos('P02',mystr);
P02:=COPY(MYSTR,m2+3,4);
m3:=pos('A01',mystr);
a01:=copy(mystr,m3+3,4);
m4:=pos('V15',mystr);
v15:=copy(mystr,m4+3,4);
m5:=pos('V11',mystr);
v11:=copy(mystr,m5+3,4);
m6:=pos('V12',mystr);
v12:=copy(mystr,m6+3,4);
m7:=pos('V13',mystr);
v13:=copy(mystr,m7+3,4);
m8:=pos('T01',mystr);
t01:=copy(mystr,m8+3,6);
ADOQUERY1.Open;
adoquery1.SQL.Clear;
adoquery1.sql.add('insert into pdm3kw2 (入设功率,反射功率)values ('+p01+','+p02+')' );
ADOQUERY1.ExecSQL;





memo1.text:=p01;
end;

end.
WGYKING 2003-04-04
  • 打赏
  • 举报
回复
应该没有问题了,你把相关的几条代码贴出来,
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
我用的是insert into
WGYKING 2003-04-04
  • 打赏
  • 举报
回复
inster into 拼写有误
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
连接我用的是adoconnect 和adoquery正确吧?
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
还是inster into 语法错误;
cjfzy 2003-04-04
  • 打赏
  • 举报
回复
先试一下:
adoquery.sql.add(' insert into pdm3kw (入设功率,反射功率)values (' +trim(p01)+ ',' +trim(p02)+ ')' );
不行的话,你在adoquery.execute;处(按F5)打一个断点,然后执行程序,在adoquery.execute;中断后按alt+F5->回车->输入adoquery.sql.text,可以看到将要执行的sql语句,你看一下有神末问题。
wlw88 2003-04-04
  • 打赏
  • 举报
回复
请在运行中跟踪一下,看看你的adoquery1.sql.text 是什么?然后把这个语句放入Access查询中执行一下,不就知道是哪里的错误了吗
guanxianjun1979 2003-04-04
  • 打赏
  • 举报
回复
rikky(读书、心知、生活):
运行时提示:inster into 语法错误;
在adoquery中运行SQL是不是adoquery.sql.add('sql语句');
adoquery.execsql;
在有,我P01,P02:STRING;
而入设功率,反射功率在access中数据类型为数字,字段大小为长整形,格式为常规数字,小数位数为自动。
加载更多回复(11)

2,497

社区成员

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

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