QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13057|回复: 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.
; j# P& [. A/ d- Y9 k* t     ( ]" e/ T6 P8 ?. w3 u  `
     while not adoqxiaoban.Eof8 X: \' |8 h0 ?$ Y! L
     do
1 b2 q& ^) p" t2 j6 n, ?7 `     begin3 G% r; }* U  e9 K1 D
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
5 T& ~+ V! H8 F0 Y0 J     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;1 [' v* t) M) U8 T. F! |$ u, C
     strcode:=strlinban+strxiaoban;7 M& J# J; p+ J4 \
     adoqs.SQL.Clear ;6 k1 F+ w) G7 @( F. u
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');8 C+ e  s7 ?! n3 s: k
     adoqs.Prepared ;; T. G' k) }# I# W, t/ F% F
     try3 W! D6 l9 `- x* R# q- q2 d
     adoqs.Open ;
1 ?& A* e) G5 U1 Y2 i" v     adoqxiaoban.Next ;
, t/ ?. h2 T) M) T, p- x4 v     except2 O/ ?+ O1 |" L5 {% P) F! ~6 B1 y8 K
     showmessage(''出错!'');1 V( A9 y0 D. _7 J* R
     exit;
: Q  p1 [! n4 K     end;) M% v; H+ H* q( `
     end;9 _* K1 o( r0 X8 o
     adoqlinban.Next ;
) E3 k+ F9 m+ L; M5 w- Y1 p  ]     ! E5 d4 @8 H6 s
     这是其中的一段代码 好像出错的就是在这 在adoxiaoban.next那 哪位大虾帮帮忙 很急了
zan
转播转播0 分享淘帖0 分享分享0 收藏收藏0 支持支持0 反对反对0 微信微信
ilikenba 实名认证       

1万

主题

49

听众

2万

积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [LV.10]以坛为家III

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

    群组万里江山

    群组sas讨论小组

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

    群组C 语言讨论组

    群组Matlab讨论组

    <>我估计是这句的问题adoqs.Open ;
    ; Y# Y1 t0 }, V& G) b6 |! {' ^7 u4 M你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    9 e7 w0 D  K( d2 K  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    1 J, d2 [% H% x$ ^  Dialogs, StdCtrls, DB, ADODB;</P><>type- E! ~) p7 R8 d  t( @9 j
      TForm1 = class(TForm)% n9 D5 T- i% _: d2 ~
        Edit1: TEdit;
    6 \) w& B+ R! d" X$ V  Q    Button1: TButton;; J. B6 \- o) C$ I$ a! `# u
        ADOConnection1: TADOConnection;8 b4 r- S$ a. i3 j0 F7 [( m
        ADOQlinchang: TADOQuery;# ^5 D: v5 j6 j* z3 t
        ADOQyinglinqu: TADOQuery;
    $ j& |, d0 b- W) S9 x( b3 _    ADOQzuoyequ: TADOQuery;
    - V/ J& s' K( `! W8 P    ADOQlinban: TADOQuery;
    - ~$ M# M& }8 d    ADOQxiaoban: TADOQuery;
    ' {. E4 B: \; x7 S& }    ADOQs: TADOQuery;3 K( m7 S4 @/ w% g/ M; M& P2 c, S
        procedure Button1Click(Sender: TObject);
    4 T: w* b" _9 t6 C% T  ?  |  private
    * w) ?4 O/ `$ ?    { Private declarations }
      p( \2 O" U9 W7 t  public
    / ^/ @" A# g; n3 u3 ]    { Public declarations }
    ' S- S1 o8 L3 |0 O  end;</P><>var7 |" U$ ], D! g% W* i
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);) ]6 e( m  |* ~
    var
    0 A' D/ ?- g7 t7 `; ?9 hstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;+ I2 o6 z* l6 N1 F# ^; t
    begin! a! [) D) E* u6 b  b4 Z! c8 }5 Y
    adoqlinchang.Close ;
    5 M; I" q+ z& {7 @- x- k. padoqyinglinqu.Close ;& W0 R& m. v' X# C! F; d
    adoqzuoyequ.Close ;
    $ ^$ t3 ^$ l+ Y6 badoqlinban.Close ;
    ( e. \* Y; {: x( qadoqxiaoban.Close ;
    4 P/ s2 ?8 B. s0 H, Q2 n7 e3 g, jadoqs.Close ;9 E2 ^* x  o. T! g$ x
    adoqlinchang.SQL.Clear ;& J/ E7 r# j7 R  D# x8 }/ c/ d
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    # @4 R* p/ L+ i* Yadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    % ~1 R  p! Q8 d& ]( Y: E6 Z' Z& Aadoqlinchang.Prepared ;2 B5 u- b( @! f7 [3 V, K4 q; R
    adoqlinchang.Open ;7 s. z4 m8 q4 _3 Q
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );1 P# F% K2 J# }9 o8 K. _- _5 b* j
    adoqyinglinqu.SQL.Clear ;' P. S! m3 m! {* {% i, A
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    / X3 z* m  D& D4 H$ e9 Sadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;0 m; {, r/ `: `( b6 t0 w7 W) z
    adoqyinglinqu.Prepared ;  T7 M# i5 Y7 M5 i, s/ g
    adoqyinglinqu.Open ;2 c+ c! `1 w. h0 }6 T8 C
    while not adoqyinglinqu.Eof
    * T8 \4 Y% z* n! Tdo2 `6 o( P5 [# F2 v! e
    begin
    / o. g  ]3 O) p: D( ~( x4 k  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );: K. X- N' \* h% H* U/ _
      strcodeying:=strlinchang+'999'+stryinglinqu;
    % B5 }. E% c3 H( Q  ADOQZuoYeQu.SQL.Clear;
    ( S8 _5 e) v/ j' o. ~" O5 A  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    * K. K/ b7 k; L9 y  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    5 ~8 _9 R! r" U, J  ADOQZuoYeQu.Prepared;
    . h9 i0 c, l1 v1 n  ADOQZuoYeQu.Open ;
    2 h. c' }8 \2 h/ k- u; F  while not adoqzuoyequ.Eof6 a) l/ X( r! [2 p7 L: K6 f
      do  x. s, y" Y) E' j. f, K
      begin  C/ r6 e$ Q" s4 e7 I$ b
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码( o6 T' T) H$ q/ G1 l- }
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    & T4 [% I- Q$ d9 c9 L4 M- O    ADOQLinBan.SQL.Clear;
    1 m/ v# V, |" n- _: Q7 g    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    0 A2 ?+ u8 i2 j) ~4 R0 v4 v    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    1 I0 V; B* v- ~9 R, [; r    ADOQLinBan.Prepared;' V6 x$ t) Z3 V, i0 W7 N8 J, n
        ADOQlinBan.Open;, Q" x: Y3 O3 n; l6 Y
        while not adoqlinban.Eof$ W  S7 [7 a" m4 j0 ?
        do
    ! q, O) H! {4 S- o    begin
    % G! b, C+ A5 m4 u3 K      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    * g" l: s1 u0 ]9 N1 a      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    $ B( I1 b. N, w      adoqxiaoban.SQL.Clear ;
    . o2 d' T, x2 D8 |7 x1 q! u# Z3 m      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    0 Q$ ?  g( ], V2 I" c; l  V+ ~      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;7 z2 ~0 o- {& q, x  r% S
          adoqxiaoban.Prepared ;
    . u: d2 r2 S9 ?" ^& K0 q% p      adoqxiaoban.Open ;
    " P: k1 i: f3 ?, G        while not adoqxiaoban.Eof& Y4 |$ [) _+ I5 B$ V1 v
            do
    % L/ z% V) j6 m        begin& @- s; d6 P$ O, \& Z$ V
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    - k# k  p% p* J2 F2 Z6 k          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    . h: \) D8 I5 b* |& R$ f          strcode:=strlinban+strxiaoban;" d2 B+ V* [) h- ]2 C, g
              adoqs.SQL.Clear ;! H9 v0 T6 X) \- _  v2 N* U
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');" j+ G9 `) C; z$ O' N
              adoqs.Prepared ;* b( \- C" q. s* E: q9 l3 l
              try9 g' H& |$ x1 M- ?/ H4 P7 u
              adoqs.Open ;: w/ ]4 h& A+ Q  |) a1 b
              adoqxiaoban.Next ;
    8 t# l9 m8 g: t6 l1 m/ x6 n8 r          except
    5 @/ v7 D; X- y. m8 q# Q% r          showmessage('出错!');, X) c  F; L& Z* {+ @- Q
              exit;
    ) q. I& W  ]3 \          end;* D$ Z4 w$ B* r9 J6 F
            end;# [$ o, s# a1 t3 Q1 a1 p' ^$ q8 G
            adoqlinban.Next ;
    % ~/ K/ ~$ y) N, I( ]# t    end;8 L7 @' N; ^' h0 {; u- |
        adoqzuoyequ.Next;9 a' w" D5 i3 Q& V: Z; h
      end;1 B' N% G- @$ X6 J5 @* l5 ?( L
        adoqyinglinqu.Next ;4 X5 H& X6 u) v$ c0 s
    end;. l$ `% Q, `  I2 J7 U0 ?
      adoqlinchang.Close ;
    8 X0 d3 X, P$ U: H' I  adoqyinglinqu.Close ;/ x5 G1 s. ]* h  T" S8 ?+ L
      adoqzuoyequ.Close ;% N. G: X3 l* }6 a/ T
      adoqlinban.Close ;
    1 n! R( d1 g+ i7 v  adoqxiaoban.Close ;
    # j+ g" P# ^! k' y7 Q  [+ F  adoqs.Close ;
    $ N% `, r  t( n- @end;</P><>end.</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [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 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [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);
    & w* a+ q- @; ?2 g0 Rvar* O+ t5 j# W+ y+ S& v, C
      str1,str2:string;
    1 u  `# j, s+ W! u0 e0 rbegin. e5 y6 o9 d8 U, E) F
    str1:='001';. W8 L' b: P8 g1 P
    str2:='002';
    " H3 h9 P. w& Ladoquery1.Close ;
    8 a% v( p7 t0 cadoquery1.SQL.Clear ;
    - h) a* c5 F0 U2 [9 radoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    7 b6 R7 D- S1 s. f/ m3 @adoquery1.Prepared ;# U2 ^4 R7 _( |* P5 {4 {
    adoquery1.ExecSQL ;" w) j  ^+ x9 b! k( Q3 d. v
    end;</P><>我觉得我的程序没有错呀 </P><>还有 varchar 和 char 有什么区别亚</P><>万分感谢!!! </P>[em07][em01][em01][em01]
    回复

    使用道具 举报

    ilikenba 实名认证       

    1万

    主题

    49

    听众

    2万

    积分

  • TA的每日心情
    奋斗
    2024-6-23 05:14
  • 签到天数: 1043 天

    [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, 2026-7-19 15:41 , Processed in 0.530669 second(s), 98 queries .

    回顶部