QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 11364|回复: 11
打印 上一主题 下一主题

[求助] 关于delphi访问数据库发生了错误 !!!急!!!急!!!急!!!

[复制链接]
字体大小: 正常 放大
penguin        

1

主题

2

听众

23

积分

升级  18.95%

该用户从未签到

网络挑战赛参赛者

新人进步奖

跳转到指定楼层
1#
发表于 2005-5-6 10:09 |只看该作者 |倒序浏览
|招呼Ta 关注Ta
project project2.exe raised exception class eoleexception with message ''在此上下文中不允许使用''c1999001999001999001999001''。此处只允许使用常量、表达式或变量。不允许使用列名。''.process stopped.use step or run to continue.
$ X. P4 q/ A$ D3 j. @- l# S+ [     
- T+ x4 u4 _. J     while not adoqxiaoban.Eof
4 t6 |+ A2 m- L) o* y& }     do+ s! Z8 k( z" d' H+ B9 p
     begin; \' v! j" H; @  H3 s2 |1 @5 `
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
* F6 p/ E. `8 D" ^  V$ w     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
+ P3 N0 Z) y2 w' f! d+ J     strcode:=strlinban+strxiaoban;3 h1 b* C5 V% r% k
     adoqs.SQL.Clear ;  U8 ~% s. n) z1 }
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');5 ~1 g7 o' L5 t" l0 E
     adoqs.Prepared ;
8 s( e8 G! ]) b) {: Y3 V2 V     try
+ ^( u+ y0 d, T: h. d& O' Z" u     adoqs.Open ;3 N- ]4 J& T9 L+ P$ J3 j. N
     adoqxiaoban.Next ;. s" g# g# R: o" d
     except% [/ ?2 |0 J" d
     showmessage(''出错!'');! T' C; C' ^' F& n2 O
     exit;
) A! g0 K7 _5 i+ `0 b     end;. g1 {, I  y, p; B/ v9 P
     end;
  r  i5 g5 I! S. F% }9 }     adoqlinban.Next ;
1 B  L8 t. G3 a: R  k& j     ' I3 ^7 }: x  ~: w; _' I
     这是其中的一段代码 好像出错的就是在这 在adoxiaoban.next那 哪位大虾帮帮忙 很急了
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ilikenba 实名认证       

2634

主题

47

听众

1万

积分

  • TA的每日心情
    奋斗
    2024-4-15 06:07
  • 签到天数: 1008 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    <>我估计是这句的问题adoqs.Open ;
    1 Z* l, V6 k- j' s0 }, C你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    5 {- T/ s3 g5 K% j  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    + o; i' G) p& D8 u) O" e  Dialogs, StdCtrls, DB, ADODB;</P><>type
    0 u9 |+ _) `; k1 U$ _. k$ d6 Y# f/ ]  TForm1 = class(TForm)
    & o) z+ L! }: m4 I% w    Edit1: TEdit;% E% h" e, e! o8 e- H0 P. l
        Button1: TButton;- o+ V) h! H8 Q, B5 q
        ADOConnection1: TADOConnection;
    % v2 W9 t3 q9 |- v! B8 P; Y' z9 ]    ADOQlinchang: TADOQuery;# Y& E% g- }" a( i. D
        ADOQyinglinqu: TADOQuery;* e* `# }: C- T( Z5 d. C
        ADOQzuoyequ: TADOQuery;
    ! _& q3 D% X9 ~* N1 r( ?    ADOQlinban: TADOQuery;4 x7 |2 o" T" F. s% v) e# m6 f
        ADOQxiaoban: TADOQuery;5 z4 a; v* n4 |+ }: [+ ]
        ADOQs: TADOQuery;
    ( |/ ~' y# d' n! ?) `    procedure Button1Click(Sender: TObject);' H) D, F) b* z  c: z0 @2 Q' Y; f
      private0 g: Y7 c1 j- g8 n4 V0 C. `
        { Private declarations }
    4 o3 j% V/ ~# I* c) p' X0 S9 l$ H  public8 l: F+ m( z2 r  T! `. B
        { Public declarations }
    6 H9 m8 j* H+ i  end;</P><>var
    : W5 h6 N2 r: u1 a$ P. s5 _. Y  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);8 g/ u( S- d) z6 b$ c" P* a% k' j
    var
    ; v& V4 q( H. C+ o4 j$ Fstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    * O. t: L: [& u- a/ t( o: c: kbegin% f: D! z( z1 G+ g
    adoqlinchang.Close ;* a% s, b) A  r* N
    adoqyinglinqu.Close ;
    $ E9 m9 \: w% M, o9 k3 aadoqzuoyequ.Close ;
    ' [1 F9 M7 v# L5 R  ?" Jadoqlinban.Close ;; z. d; l: M# D7 L5 t
    adoqxiaoban.Close ;1 H$ r7 W& W( \
    adoqs.Close ;( |1 ^5 J& ]& W* i  W5 a) }4 \/ D) @
    adoqlinchang.SQL.Clear ;
    1 M. O5 k+ Y. h1 N9 O) ^. Q1 t9 y) x! k( eadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    - q6 R; j% o$ m# _6 X9 z" iadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;; S, l1 X+ M, B6 B/ \
    adoqlinchang.Prepared ;
    . b  X7 V$ ^  C  }  I9 ^adoqlinchang.Open ;/ B% q$ R9 }3 ~
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );% w" ?. `6 M4 h! t4 [
    adoqyinglinqu.SQL.Clear ;7 W% X4 h% t! X9 n" G( k1 a; [
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    7 Z- Q7 f/ h) a0 c& ^, y9 C+ vadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    + U0 J* W7 O, T$ I$ y% e2 Uadoqyinglinqu.Prepared ;
    . G5 B9 v  q* `- B5 Z7 Eadoqyinglinqu.Open ;1 u' L1 V2 Z0 F4 a0 d5 r
    while not adoqyinglinqu.Eof
    2 d  H& w0 \% g2 h7 ~, w' ido
    5 c- J6 L  y( F+ k5 S, [# Tbegin
    1 f3 G1 ~$ \; M5 p) m# p9 s  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    ) {5 C7 f0 }; r$ \  strcodeying:=strlinchang+'999'+stryinglinqu;0 G: T: v7 r3 ^$ _" m
      ADOQZuoYeQu.SQL.Clear;
    + N# J5 Y$ c/ ]1 `2 n  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');4 ]* ^; i* N2 ~6 @* y/ p
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    ' m8 K0 ^4 j- q& i  ADOQZuoYeQu.Prepared;
    ' l4 ~3 ^/ L/ i) T& z* U0 R$ G' Y  ADOQZuoYeQu.Open ;/ A/ y) l& k! z" n: i8 b
      while not adoqzuoyequ.Eof
    7 D/ W& t5 m- r% `! I) N  do" A" ~/ m; D0 r
      begin
    ; C8 G1 ?$ U9 D$ I$ R" w. m    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    . ^0 m1 X* s3 K    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;/ h' @' h& q5 B" _+ d, M9 y$ Y. _
        ADOQLinBan.SQL.Clear;5 u. D% Z# P& }/ m
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');5 H+ G* G8 M0 J* E
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    . M5 q  S! ^5 `) |    ADOQLinBan.Prepared;( c$ b: \8 {% a
        ADOQlinBan.Open;
    6 N* l8 {. B+ P& N    while not adoqlinban.Eof
    8 [) W- o" W7 o" x, H# _2 W$ m    do
    8 e! p# \7 G. T# l! x2 D    begin! b( M. t2 j  A. ?% |
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );* s. p2 \9 B# z2 H
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;" p, i& k, s  F! W, \  |- W
          adoqxiaoban.SQL.Clear ;
    7 W& D( B4 O9 T) Q8 n      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');( e& @- ~5 C8 k' f1 p. U
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    0 x2 ?" P* [6 ]# P& f- Z$ I      adoqxiaoban.Prepared ;
    + H* W$ C6 f9 c      adoqxiaoban.Open ;3 Q& |2 u0 u, P- W8 G; F0 U7 j4 W
            while not adoqxiaoban.Eof7 q* J% o1 p! L2 J% ]! v
            do6 c! e# w! d/ o- E2 ]
            begin
    # K+ b* X$ w( n" A9 D3 y0 l7 ]          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );. g* i. C9 [$ C% X- l
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;! A% \, L% I  y6 `1 b
              strcode:=strlinban+strxiaoban;
    - b( O! a) s% i6 [. W% {9 ]# m5 ^          adoqs.SQL.Clear ;
    / I& ^( [* m# I- K          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');! S( b" w0 U/ [1 N: l! D
              adoqs.Prepared ;. L( T- l8 \% ~& A- R' M
              try2 o& X3 y' ^5 v7 s7 c2 U2 T
              adoqs.Open ;  ?3 j( ~3 {0 L: b. @- w
              adoqxiaoban.Next ;2 @' V- n3 P9 T
              except' ?7 v  k% j; F9 P# K; ?
              showmessage('出错!');! F+ A0 ~% z" D+ r  }% V' Q- u
              exit;+ g: m# T% S8 A# I2 h7 S
              end;2 _& c) X* G# k  U- q# c' s1 u
            end;( t; O3 I; j( t# I; ]0 ~5 d0 \: M0 p
            adoqlinban.Next ;
    ) h+ I# A' _& A9 b, \    end;, f( `2 Z4 `5 ^4 O/ n
        adoqzuoyequ.Next;
    - q( |1 p, H+ ~: |6 C- s  end;
    / p& G7 T+ Y7 |$ E2 l  q. o    adoqyinglinqu.Next ;6 o( |( h, _) m6 d
    end;5 J% L) L; \2 q* L( c$ M; P
      adoqlinchang.Close ;
    7 M* u# f! A+ ~& _' y6 c  adoqyinglinqu.Close ;" Z& a7 B% e6 L
      adoqzuoyequ.Close ;9 t7 \6 f, X! _6 t# U; k! B
      adoqlinban.Close ;
    & q% u% d4 m, O6 d7 Y3 c  adoqxiaoban.Close ;
      O1 Y7 U% i% w( u  adoqs.Close ;
    7 f/ N9 G& I& F1 H2 S3 R1 Pend;</P><>end.</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    回复

    使用道具 举报

    ilikenba 实名认证       

    2634

    主题

    47

    听众

    1万

    积分

  • TA的每日心情
    奋斗
    2024-4-15 06:07
  • 签到天数: 1008 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    你的程序我读起来不太明白,没有数据库我也调试不了,但是从错误看应该是SQL语句的问题,你应该跟踪一下,看看每个生成的SQL语句是不是正确!
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    怎么跟踪亚 因为我的delphi没学多久 [em04] 我开始也以为是sql语句错 但试了下好像没什么问题
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>而且 每次用delphi向sql server里插入字符串时 如 001 到了数据库里面都是 1 </P><>数据库里的数据类型是char型的 </P>
    回复

    使用道具 举报

    ilikenba 实名认证       

    2634

    主题

    47

    听众

    1万

    积分

  • TA的每日心情
    奋斗
    2024-4-15 06:07
  • 签到天数: 1008 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    你确认存入数据库的语句没有问题吗?001变成了1应该当作整型处理的原因,我一般喜欢用varchar的类型!
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>那是个实现从数据库中提取各级单位的编码 然后再编成最底一级的单位的编码 以表示它们间的上下级的关系 很简单的 </P><>这个很急 搞了一个5.1  都没弄出来 下面的工作都没法做了 拜托拜托了</P><>至于 001 变为 1的 程序在下面</P><>procedure TForm1.Button1Click(Sender: TObject);
    * _  Q% C- M. N) `" h. Z: H+ Bvar, r4 I2 o7 e2 X; q' z
      str1,str2:string;
    # t# v. W8 T" Y- ?: ~, |begin8 W: t! p- i# g$ Y: g4 ^. [1 H
    str1:='001';9 C) `" g) `7 R  Y( T+ s
    str2:='002';
    6 {* m* F+ @  C9 e8 N* Iadoquery1.Close ;
    + U1 y+ w, k+ n3 Iadoquery1.SQL.Clear ;6 p9 p( i+ X# a0 B" g
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    0 k- u! Y: g& x* }3 T$ Badoquery1.Prepared ;. i0 U& L0 _& k2 ~# ?
    adoquery1.ExecSQL ;; @  I% j* R6 Z, N: ~6 J( L+ t: _/ }
    end;</P><>我觉得我的程序没有错呀 </P><>还有 varchar 和 char 有什么区别亚</P><>万分感谢!!! </P>[em07][em01][em01][em01]
    回复

    使用道具 举报

    ilikenba 实名认证       

    2634

    主题

    47

    听众

    1万

    积分

  • TA的每日心情
    奋斗
    2024-4-15 06:07
  • 签到天数: 1008 天

    [LV.10]以坛为家III

    社区QQ达人 新人进步奖 优秀斑竹奖 发帖功臣

    群组万里江山

    群组sas讨论小组

    群组长盛证券理财有限公司

    群组C 语言讨论组

    群组Matlab讨论组

    <>晕,你的SQL语句写的不对!字符串数据添加是两边要有',否则就按数字处理了!</P><>adoquery1.SQL.Add('insert into test1 values('''+str1+''','''+str2+''')');</P><>这句改成上面的就对了!</P>
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 注册地址

    qq
    收缩
    • 电话咨询

    • 04714969085
    fastpost

    关于我们| 联系我们| 诚征英才| 对外合作| 产品服务| QQ

    手机版|Archiver| |繁體中文 手机客户端  

    蒙公网安备 15010502000194号

    Powered by Discuz! X2.5   © 2001-2013 数学建模网-数学中国 ( 蒙ICP备14002410号-3 蒙BBS备-0002号 )     论坛法律顾问:王兆丰

    GMT+8, 2024-4-19 14:28 , Processed in 0.778271 second(s), 97 queries .

    回顶部