QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12964|回复: 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.  }, ]5 Y; ]6 v' s" |$ C
     9 z- _& R( r3 z; u: ^4 l! d5 ^) {; |
     while not adoqxiaoban.Eof
9 a5 [% o9 i9 x     do  h/ O; ^7 [$ r4 v& d3 X( q( X
     begin4 z2 z, G* w4 ^2 e7 H$ r: g
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
1 w/ s/ [! \8 [; ]3 p! Q0 D/ N     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;9 _9 e6 _6 f5 h, O! [& ]
     strcode:=strlinban+strxiaoban;& j. o2 V" W( e4 Z+ Q' ?% T
     adoqs.SQL.Clear ;
9 s9 v% E' N4 u3 o# a) }     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');# T3 p% O# W: z
     adoqs.Prepared ;
& T! G) t8 \$ w/ W     try- ?+ n( Y6 X* K# r% v* }
     adoqs.Open ;0 b% g& i$ Q; P& s3 h
     adoqxiaoban.Next ;# O5 C, R% {4 p
     except, c. P4 F7 ~1 ?) `( A& D
     showmessage(''出错!'');
2 E, o" w) g0 h& ?5 X% O( @     exit;% L, }# g% i2 u/ ?  Z: X
     end;
+ T. C8 h" y, c; ]6 g0 T     end;- y; l/ {( P- f5 c
     adoqlinban.Next ;
$ v" |" {# f, o! ]     
- h: n! `" e  R& C3 C     这是其中的一段代码 好像出错的就是在这 在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 ;
    $ ?& q* g$ |1 X% p  a7 a  z你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses6 d# K7 N, m0 m7 D
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,3 P( H7 y$ ?" w4 ^
      Dialogs, StdCtrls, DB, ADODB;</P><>type1 c  ^4 U: r; W5 i. o& C. X% i9 i
      TForm1 = class(TForm)* k8 i0 U3 Q* C! {8 x& B
        Edit1: TEdit;$ \! t  _3 X  X: ^# h
        Button1: TButton;
    8 {+ k5 F8 h* O" @! g8 H    ADOConnection1: TADOConnection;
    + S- _$ \: m4 z, c. s- K    ADOQlinchang: TADOQuery;
    9 a6 D5 X' a8 g$ X4 |1 F& g    ADOQyinglinqu: TADOQuery;; K, b; k3 J, M' K1 e! _+ J( s
        ADOQzuoyequ: TADOQuery;
    ) V; l# x5 c- l1 o! F  G; u    ADOQlinban: TADOQuery;
    % b- q* B0 U7 J! d, w    ADOQxiaoban: TADOQuery;
    ' V+ @0 N1 U% W; l: T+ ~    ADOQs: TADOQuery;
    + z: E; ]1 M/ b3 m    procedure Button1Click(Sender: TObject);
    & P0 @, D; e  J3 ~* O  private0 V- Y0 _+ U- s9 ?& E) n  b+ o. y
        { Private declarations }
    - W9 ]: o( a+ B: H1 N  `/ Q  public9 U$ v/ n& X* i! `
        { Public declarations }
    , K3 n/ R2 s( n: _9 Y  end;</P><>var% H) l' I0 n: L0 t8 X$ z: Q' J
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);- l+ n4 ^% D7 }0 p4 Q/ n, a
    var
    + [5 r1 B8 q8 P+ u+ v  j' Fstrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;2 c- p; |; E$ M) T: p3 E
    begin
    ) I7 Q3 ?/ `5 s7 B- A( @adoqlinchang.Close ;
    $ X, o7 F9 H0 C) h: Gadoqyinglinqu.Close ;/ ~6 P: b0 n9 j/ t# q# h
    adoqzuoyequ.Close ;% Y2 j8 e! H* u  p3 y" d- x
    adoqlinban.Close ;/ ]; K& g8 _! m" k7 P' K- y" W# J
    adoqxiaoban.Close ;2 E. V/ Z; u# K$ f2 z- O+ R$ m
    adoqs.Close ;" U/ J. P2 \- w  B
    adoqlinchang.SQL.Clear ;8 ^5 W1 P; E7 A/ ^
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');$ T. L5 T: J- U- \7 `- {
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;+ c3 ~, r1 d2 s" e1 y
    adoqlinchang.Prepared ;
    $ b3 D' m- K# Y) P7 x0 padoqlinchang.Open ;2 F# v+ b" Y, @
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    ! W1 P0 v2 U9 U: A) badoqyinglinqu.SQL.Clear ;
    ) h! O: [/ w5 A6 D3 madoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');. P+ I0 Y$ d2 p; h, a
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    ( A) M- w0 H8 V+ Eadoqyinglinqu.Prepared ;
    ; y' f$ G' a" c. {8 Madoqyinglinqu.Open ;" B% n! O% n2 u; w& Z+ S5 e
    while not adoqyinglinqu.Eof6 x/ O& D( B0 n$ r/ ^
    do! M$ J' }4 T+ e0 L9 d0 b- r
    begin
    / c4 x. h4 G+ u( r/ h. c' w  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    ! s9 m7 `% O/ W% j- |  strcodeying:=strlinchang+'999'+stryinglinqu;
    , Y$ T6 c. ?3 H% P' V  ADOQZuoYeQu.SQL.Clear;
    8 f( d4 `) ]7 [0 f  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');. C( ^4 Q) I6 h" C. A3 s8 Z  [
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    : S( }8 F# ~4 k  ADOQZuoYeQu.Prepared;* Q6 s8 {  V* X
      ADOQZuoYeQu.Open ;# l. S9 K+ a, }) E& k; z
      while not adoqzuoyequ.Eof: S# E$ t6 [( n7 l. k7 \) e" N% ^
      do+ E4 n# }$ N( q) B0 n6 x+ p
      begin
    * n8 M; Z  Y5 }, f9 J: g    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码- X/ J  }% o6 u4 g( @9 y
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    " b. h5 w+ x$ X, c9 s    ADOQLinBan.SQL.Clear;
    - ?. }! i! Y0 f5 ^    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');/ q8 ^& M4 U' E" |0 k7 ^* i
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    + k. J4 h8 R) M8 j3 w  u% L) Q    ADOQLinBan.Prepared;
      e, a. k1 F/ y1 R- ]" ~# f0 P3 n    ADOQlinBan.Open;; o- l( m4 b$ }. U3 D. f0 t) P* `/ P5 b
        while not adoqlinban.Eof
    & r0 h* t/ |8 \( E8 M    do
    & r5 T6 b  u' D" }/ q    begin4 I' D4 q6 |5 ?1 `8 s: r! v& H5 Y
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );$ a5 X- Y; d+ e3 [8 Y' |! _0 q4 ^
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;, t: R0 G" `, G# {3 E$ h
          adoqxiaoban.SQL.Clear ;
    7 b! ^5 C& v; C. f3 r+ i6 Y      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    6 _6 F: `' j  z, B% L! x! E& Q8 [      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    , U. V2 a  s+ U3 O( W3 K      adoqxiaoban.Prepared ;
    8 j" |) S- D6 j% K# m! f5 P      adoqxiaoban.Open ;7 F0 X  s1 n% A3 t
            while not adoqxiaoban.Eof
    6 ]/ G3 T0 Z  p' \/ S6 J        do
    : @/ \7 B0 I/ M6 Y% @. d" [' C9 j        begin
    % e& \8 Q- b3 \/ F/ T0 a          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );. c( O8 ]/ v6 }
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    # ~9 F0 _4 r+ W7 d3 p! v" C* f          strcode:=strlinban+strxiaoban;
    ) p' z* R: G4 m: L          adoqs.SQL.Clear ;
    8 g6 H/ H0 V' y) r          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    0 u/ ~' w6 b% q5 v( I4 n# Y# r8 B          adoqs.Prepared ;
    6 J; b( y3 L9 V* F! I9 g& g          try
    ' |  {( \, p8 w/ m: f$ l5 q2 l: V3 N          adoqs.Open ;
    / |5 u  Q7 c. g" Z8 q% d          adoqxiaoban.Next ;5 w! S4 G( Y+ W4 [# `
              except" o$ f* f  W  p+ a7 w2 F' \( h0 Z
              showmessage('出错!');" M6 \. {9 e' ~3 W
              exit;
    . v: j- t7 v$ n- i7 k          end;
    6 i5 t2 b8 t, \( C& I        end;
    # A9 I) [6 t; s% t1 Z9 B; Q' Q        adoqlinban.Next ;
    ; I. n/ ^' ]- _% e! G3 ~' a    end;
    3 I& w/ k1 \0 X7 y! Y& t    adoqzuoyequ.Next;; v# E4 Y. n* D2 u/ ?1 G
      end;
    + S8 g% U% s2 ^4 J4 U  L& K. [    adoqyinglinqu.Next ;
      \0 g- J5 w4 cend;% p5 L0 |# A' M, C9 i! S8 }
      adoqlinchang.Close ;
    4 a$ i( O, K9 i( L  c6 X% n9 g  adoqyinglinqu.Close ;+ ~& F% Z* x( k1 g9 q. w, I
      adoqzuoyequ.Close ;
    , z0 s% s' M$ C" I5 Z3 c. k8 }  adoqlinban.Close ;( z) u; S% l, I: \# N3 i4 N& \, A
      adoqxiaoban.Close ;/ a% P7 Q5 d/ S+ Z0 M# {! V% H+ h
      adoqs.Close ;5 F5 e, ?+ J4 |* A; X# 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);& y6 T: Q4 [+ V, T* K9 B9 q0 k
    var5 w- N+ N% X+ i8 w* R& J& \6 K
      str1,str2:string;; L7 k8 ~: X3 W* d
    begin: Y7 X* Z* K* U- T( b8 i
    str1:='001';: u7 b" F1 N, C
    str2:='002';3 c8 m. u' B: H: N
    adoquery1.Close ;2 h8 {6 o- q" ^$ t
    adoquery1.SQL.Clear ;: |; N5 \& `0 z+ b
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    0 ?5 M2 m8 d* z8 Yadoquery1.Prepared ;- }. ?( C* N7 v, [2 g+ M- {
    adoquery1.ExecSQL ;& W3 A* V* l& q3 C8 W
    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-6-2 01:26 , Processed in 0.412326 second(s), 98 queries .

    回顶部