QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12567|回复: 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.3 X0 x! a$ a7 f9 H. o
     
( E" J6 @+ e1 z( {     while not adoqxiaoban.Eof1 i' I3 e7 Y5 T$ ]( E
     do
! k- V# _$ A% t2 e# ]0 \     begin2 P( L) |9 q  }- X' U
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );% p: J/ @9 w4 d8 l5 H
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
* t: Z: Z2 ], g6 h/ K     strcode:=strlinban+strxiaoban;
+ H! W/ A* S+ ^( c     adoqs.SQL.Clear ;& M+ L2 q, ?) M/ o! w% w% y4 N
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');+ L* b8 l& G+ c+ @6 @0 Y
     adoqs.Prepared ;6 j! p3 N# I; @
     try7 x/ ?/ @. c, q. r3 G$ ~, _
     adoqs.Open ;7 v/ y* ?+ ?1 K, u5 q5 \) m
     adoqxiaoban.Next ;0 D" Y, J: E1 e$ d( \
     except
1 M6 ^6 \, {+ S4 m, W- d7 N. X' j     showmessage(''出错!'');
2 r: ~$ f/ u% D& B- `. T     exit;1 ]" b. j2 A0 Z. t) C
     end;
+ X) a0 C" f9 [, k: e0 ]; w$ {     end;/ C) \6 q# ~& M$ Y* p
     adoqlinban.Next ;0 z+ u1 w7 \" r7 v2 I, ?  O
     * T. b  O9 S5 E5 @
     这是其中的一段代码 好像出错的就是在这 在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 ;4 C: j' ~# I: X1 N& G9 o
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    9 R/ u( [( a# v" `% O  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    ' a$ ^: ~! R( d7 x8 x+ u0 o/ \6 I  Dialogs, StdCtrls, DB, ADODB;</P><>type
    2 D( n: V  x  R  TForm1 = class(TForm)( r1 p! S6 l  |, m3 w  B$ P3 K4 S3 R0 S
        Edit1: TEdit;# k2 x+ G: Q. a5 O
        Button1: TButton;
    + b- y( G, K2 R% O    ADOConnection1: TADOConnection;
    1 e4 p) i" ~" y) c6 W1 Z    ADOQlinchang: TADOQuery;
      W- X" y& }; P: y5 a& W    ADOQyinglinqu: TADOQuery;
    2 j9 m$ K; h, c, q2 j; Z    ADOQzuoyequ: TADOQuery;- z4 l& G5 N* W! P, r% `# u; D+ U
        ADOQlinban: TADOQuery;+ O) n: `- m3 e( e' z
        ADOQxiaoban: TADOQuery;1 K& d. H/ n( h) L
        ADOQs: TADOQuery;9 f5 V' A9 Y1 D3 V+ q1 N# d
        procedure Button1Click(Sender: TObject);3 p' v& c& _0 n3 Z( M# R1 e6 T0 q9 z
      private
    : S( o' P1 l8 S- }    { Private declarations }' j! a5 I, o& J6 o! `( a$ ^
      public0 e, h: q- D8 w% j, _
        { Public declarations }
    8 r4 K+ R( Y3 ]! [) f  end;</P><>var0 E; o5 Z. ]! H7 f) V. v
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    % O) J* N, b0 k1 i* g' R; c" W* y. |- Zvar0 M  W6 ^* {# c
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;6 e/ C  J7 g3 ^! s" K9 J5 _
    begin; q. v2 T# p% \1 [" f$ Z
    adoqlinchang.Close ;& H8 F# |1 X1 ?+ _
    adoqyinglinqu.Close ;& [8 C8 n5 g. E# i9 \5 d! Y
    adoqzuoyequ.Close ;
    $ L! Y" u; M& Y% a8 o* Zadoqlinban.Close ;! R+ x- D% b9 W/ ?0 @3 l2 @
    adoqxiaoban.Close ;
    8 F, C* J: f& `5 J+ Ladoqs.Close ;3 F" B6 f# u) i* D; V/ S9 \6 N
    adoqlinchang.SQL.Clear ;
    / ]4 ]. C, ^) z  M/ D% g6 N: Eadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    8 a7 W, ]7 i, @5 ^  nadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;7 e/ R% x! r, j8 J7 a
    adoqlinchang.Prepared ;
    9 e0 c1 A' {+ S. Yadoqlinchang.Open ;
    $ E0 ]( e+ R% n) ^0 Y8 ostrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );/ t5 M  ]9 Y5 H
    adoqyinglinqu.SQL.Clear ;
    6 a0 R7 P& x, c9 N7 @& F. p4 eadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');4 ]% y" ^( L& t) s
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    0 @. O0 {7 L' b/ Qadoqyinglinqu.Prepared ;
    ' s* h/ X1 a7 H9 k& ?; P; q* Zadoqyinglinqu.Open ;2 A9 W6 p' t* `' V- `+ t) Q. O( s
    while not adoqyinglinqu.Eof
    $ V. D! [( N+ ?5 P- T8 wdo  ?- N- L4 _3 p
    begin
    9 b% F: N  V1 Q3 @! v  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );, w' e8 H1 [& n( B" W6 }
      strcodeying:=strlinchang+'999'+stryinglinqu;3 @) c& v- U  A/ n2 V/ `
      ADOQZuoYeQu.SQL.Clear;
    4 {4 D, ?" W% d( ^3 |  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    8 f  R9 _( H5 ]' ?- y) z  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;/ H2 c9 v1 a+ h$ y0 p2 O
      ADOQZuoYeQu.Prepared;7 f& F  K: E, B. D  f) `, i+ `7 F
      ADOQZuoYeQu.Open ;4 t& A. C( W# g2 m2 K
      while not adoqzuoyequ.Eof! [! \2 L* K) T
      do1 u1 i( m2 u! v
      begin1 ]7 q/ [1 g/ ?+ [) H. y
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    , G, F( a) T9 x    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    $ v2 D* w" w) X& _1 a8 Q! i& a    ADOQLinBan.SQL.Clear;4 Z8 g. {5 p# n# N: Z
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    " w$ N( h9 {' I+ {    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;- n/ {* e7 x# G; u( C; h% r
        ADOQLinBan.Prepared;
    7 G$ l5 i9 `& L6 f- c    ADOQlinBan.Open;' _. j: Q& w$ I. j, {8 H1 X* _: i! t
        while not adoqlinban.Eof2 Q+ w8 g: C9 S5 W6 K  X  E; H
        do1 W1 Y, X& J6 I$ a; ?
        begin
    : n7 w) `1 _8 G' p/ ~1 D. j2 j      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );0 O2 d5 i; p6 K2 s, |$ s
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;  c# H8 m) }! b2 o! N" f
          adoqxiaoban.SQL.Clear ;; h  d  c7 [3 Q8 R4 F
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');( A' a. r6 F8 R
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;, r3 M, n8 Y; k" {
          adoqxiaoban.Prepared ;
    . L9 w! n; h; }/ b. {7 s      adoqxiaoban.Open ;+ ]2 o3 L8 m- r9 f5 @2 t
            while not adoqxiaoban.Eof
    / F4 y* O7 ^, q* z        do3 q! R5 @5 H* U
            begin
    " X( X6 E- t+ G1 t- R          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );+ y0 T) k0 k. N- C; I  ]
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    1 `3 G: m2 [2 A  p- T# L# F$ @  q          strcode:=strlinban+strxiaoban;9 ^3 g: U+ \: m
              adoqs.SQL.Clear ;, I% m8 M3 N0 s: C1 G6 l- n
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');% y$ i( L$ R! y+ O/ j8 [
              adoqs.Prepared ;
    ) R$ [; Q( k0 A/ j9 N0 s          try
    ! S6 a1 [9 n, [, f          adoqs.Open ;
    - j! u5 @4 H, ?0 O" @          adoqxiaoban.Next ;
    3 h2 [, ^+ G& W6 O" C          except. B1 l- h! C; y, p/ i
              showmessage('出错!');( N6 u; A0 [' g3 C0 e
              exit;
    , a- r  [2 o0 n( ?, X: s% s          end;3 }- u* t( d; v* u- B# Z5 ]- q% |8 u1 a
            end;, }/ a# h& D, l7 f- o. |' d( ?7 x
            adoqlinban.Next ;/ x" B) B% [7 g6 M! i" @) h. Y1 k" _
        end;# L3 N) O4 h2 b% @1 P5 r1 ]' _4 S
        adoqzuoyequ.Next;
    % ^( R8 x) E9 }  end;6 i! X2 A& U8 ^1 o. x' L, t% X' z
        adoqyinglinqu.Next ;0 c/ z5 K' I- Z# @0 B6 e
    end;
    # o, ^+ D1 |# x1 e  adoqlinchang.Close ;2 I* D. O  o: c2 ^  p# ]4 P
      adoqyinglinqu.Close ;
    ! @' J( m% f; o1 }3 q* V- W: H& N  adoqzuoyequ.Close ;3 g: q( _1 G" k
      adoqlinban.Close ;
    , Q  W. i$ Q  O: @" W, X: a' c5 A  adoqxiaoban.Close ;. `' O1 e. x1 d! c" F8 \
      adoqs.Close ;6 z3 h$ U. F+ V% N& z4 M
    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);) B8 p& R0 @; m* d* ~. U1 H  k
    var. c6 o3 C- W; P- K$ G
      str1,str2:string;
    : @) u  H) Z1 \/ H1 abegin
    , j; [/ Y9 y6 ~7 Mstr1:='001';
    7 W2 f; {+ c: s' u+ _& n/ M8 {str2:='002';2 C- `2 S7 E- a( K
    adoquery1.Close ;% y% r+ }4 m$ U/ t: J- J# G+ c
    adoquery1.SQL.Clear ;) d( e) ]' a+ I
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');( g: P' j1 |7 F- ?9 M! o
    adoquery1.Prepared ;
    ' w, h9 M7 X" O1 l( J3 eadoquery1.ExecSQL ;% f8 ^+ l$ L4 ?& c7 D
    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, 2025-8-17 12:07 , Processed in 1.033270 second(s), 97 queries .

    回顶部