QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12893|回复: 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.
; k& j9 B! f% j3 ]5 _     
$ w/ {# g( ]5 A8 m( X- }     while not adoqxiaoban.Eof
( c+ @$ y' V' P2 J& J1 B6 I' o5 I5 N; h* `     do
: @% R7 a- @/ _+ d( \/ o     begin
/ w+ T! H* g! P2 t     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
4 z2 V) G  q2 m8 P9 I  Y2 N     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;' I/ g4 ~4 i" g2 x; k9 i+ D& R% P+ x) m
     strcode:=strlinban+strxiaoban;5 |- P2 \) x! T5 j& I- ^
     adoqs.SQL.Clear ;/ x) _) w4 @5 u. n4 c
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');6 L7 B  _, h! ~1 g# C
     adoqs.Prepared ;
/ p9 w6 k; m# ^0 N' N- J1 i; J     try. n( J9 j  y+ ?' ~" F
     adoqs.Open ;5 O6 Z9 ]* S8 o0 F. q
     adoqxiaoban.Next ;" \2 h4 e; b, K) u; K  @2 G  |% P
     except- a  Z; g/ D2 F6 z1 `% D
     showmessage(''出错!'');. I' ]% d( I6 T
     exit;% N" R, O5 v1 |
     end;
* X' ~* H9 q9 N0 {* ~1 O/ q) s     end;$ d" T- _) S; N1 X9 C5 c
     adoqlinban.Next ;+ m7 g+ I8 y3 O2 Z: O
     * ]  h$ H( s8 y5 ^% u; N
     这是其中的一段代码 好像出错的就是在这 在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 ;* ]7 u) J$ m; ?6 c) F9 R7 d- y- ^
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses4 K, F8 {9 ~; h8 |
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    * e6 h$ r* D9 c  Dialogs, StdCtrls, DB, ADODB;</P><>type" e5 K( k. c6 w5 Q; n3 U
      TForm1 = class(TForm)
    * E2 {/ s% }% |6 l, o  `/ ]0 ]: g- m$ N    Edit1: TEdit;  L  ?. o9 I8 @8 D) X' A
        Button1: TButton;
    . m( w3 c+ H# Q+ l& @" p+ K: [4 G    ADOConnection1: TADOConnection;
    2 z3 n" {+ B: }7 w    ADOQlinchang: TADOQuery;- X+ a0 S" x. h
        ADOQyinglinqu: TADOQuery;
    2 g6 a) F( B+ z( i8 X# M* J    ADOQzuoyequ: TADOQuery;
    7 M! w8 O$ d  z    ADOQlinban: TADOQuery;5 ?, A6 A5 [+ j$ z# \
        ADOQxiaoban: TADOQuery;
    ) A* b& ~) u' }6 }, T+ E3 X' r    ADOQs: TADOQuery;
    " _8 x! w/ G$ y- i9 n: {5 z4 f    procedure Button1Click(Sender: TObject);! u; [4 F3 z3 P. |5 b) S/ |
      private
    $ Z: u+ p* p0 A    { Private declarations }
    + s5 |( r( r/ b3 M3 B' Z8 C4 h  public1 I' w1 ~9 _5 \" [3 \$ B
        { Public declarations }
    . E4 s+ a. K/ x$ }  b+ ?  end;</P><>var
    ! B  h* Z$ y$ X- A9 }7 ?  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    3 b4 C& \7 F* H- j- I& @var+ t8 S; K; d' f* g* D
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;% L# p- S6 y1 a  O
    begin+ p3 t8 M3 ~3 g: c& {2 K: I; ^
    adoqlinchang.Close ;
    ( Z: M! C5 S" p1 Ladoqyinglinqu.Close ;  O: H+ g4 K+ ?  Y3 G+ x
    adoqzuoyequ.Close ;
    ( s$ B' M, y1 @, ?% `& Padoqlinban.Close ;
    + y" T, s- ^* w, n" \' Ladoqxiaoban.Close ;2 D) a% ]! S2 L# ]( |8 S- U8 w9 Q! s, U
    adoqs.Close ;
    7 k, H! z6 K. X( Xadoqlinchang.SQL.Clear ;( C" a" B/ {5 @2 y( Z* g  E# t9 Q3 F
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');8 L* b& q1 t3 W) Q, x8 ]9 f* f- i
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;7 Z* h/ i$ T/ W
    adoqlinchang.Prepared ;9 P, T5 u+ R3 r0 u
    adoqlinchang.Open ;
    4 I2 p+ g6 F& |strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );" r6 s; J) z9 t: N
    adoqyinglinqu.SQL.Clear ;& E* ^* f* b  V9 h8 ?: u$ ~7 [3 p- d
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');: t0 p3 T4 a4 o, c& W, k
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;7 U% w/ R; b; u, Y  G* ^: l) e
    adoqyinglinqu.Prepared ;
    3 i! Q8 P( A" b; Q! r' _adoqyinglinqu.Open ;) z% Q6 ~, A9 m2 F! J% N9 x: T: t
    while not adoqyinglinqu.Eof
    % L9 j; N: f4 V4 l+ g! ~do
    4 ^, B6 g5 o) Y# A1 nbegin4 `0 p; S1 h( j" ?7 U: }, O) m
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    + I) i2 F4 t+ l" `1 o  strcodeying:=strlinchang+'999'+stryinglinqu;
    ( c5 g( z( Y8 z4 h5 W- l0 _0 e" C7 q) K  ADOQZuoYeQu.SQL.Clear;! O; ~# A' j( r
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    ' f4 A0 V  @# j" ~9 h5 H  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    ) W$ E; b0 M# S& k$ A. @  ADOQZuoYeQu.Prepared;
    9 ^6 ~4 K5 M  A( C  ADOQZuoYeQu.Open ;7 q" U) r( e, o3 p; }9 D
      while not adoqzuoyequ.Eof9 z5 o# q9 `) L& y0 d
      do
    - b/ M5 l5 }: g  J' V" P) ?) i  begin
    - T: S# W6 \. _# p5 J    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    5 H3 Y0 [1 s% Q# t    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;: x6 b. j# G) G; Z1 @
        ADOQLinBan.SQL.Clear;  z- D9 F2 w4 A- X2 F2 ^3 K
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    ! W% {$ q( D- i9 b, z* A  R3 e    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;! r# B; d6 c, ]: @! J$ B
        ADOQLinBan.Prepared;6 Z. [9 O4 A7 Z* P/ j7 l9 Z9 L& A
        ADOQlinBan.Open;2 S3 L/ I% a& f+ R/ p1 d. T. N
        while not adoqlinban.Eof7 M& F9 o4 y) B# n2 |9 {/ p5 m9 z
        do* W+ p% `" f( U! @( \, Q
        begin
    1 u% w5 H' a* Y4 o: J( K      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    : u8 e  n0 B+ T, Y      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;# m  c. M" L& U7 g, Q# @
          adoqxiaoban.SQL.Clear ;
    6 }: Z) N" m& A) E/ V& B. a0 G! C      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');1 i4 s/ [) T" y6 z2 r; u
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    ! ^+ r& Y( k: c9 P      adoqxiaoban.Prepared ;
    5 h' z9 n9 o8 [( b3 S5 V      adoqxiaoban.Open ;$ \: B$ o8 T+ k2 S' y  `- N. v
            while not adoqxiaoban.Eof
    4 }( G; E9 T8 F/ z        do8 }/ T5 p' Y) f+ G/ K9 Q, z
            begin
    6 |7 u" [; ]% d2 Y% {6 j' v          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );; m% s  u7 o0 ?% u9 ?6 j
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;7 Z1 l; E. A2 @1 q1 `
              strcode:=strlinban+strxiaoban;0 R3 _" W& d& g# z9 I. U
              adoqs.SQL.Clear ;
    ) ^9 z; F. `, p1 X1 ]) j9 D0 O          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');% L) ^$ X! C, q# Y
              adoqs.Prepared ;
    9 q& @4 `$ H6 H( k          try! V# V! y( Q7 T; e) [
              adoqs.Open ;
    % f$ p# L% n5 h          adoqxiaoban.Next ;2 x. h! R+ E& d; n% V
              except6 s2 G5 s9 Z: r: B# |
              showmessage('出错!');/ f8 M8 j3 \9 t+ r& `
              exit;
    9 E! t. C0 U' e" M; h/ d          end;% m3 ]9 o: r" c( n% T. q
            end;; [/ ]2 U; }7 B0 u$ O$ \0 u/ R
            adoqlinban.Next ;( L% F2 ]  X7 _5 r( X  d
        end;: k5 g) Y0 A# ?1 M& c/ H1 ~2 r" m
        adoqzuoyequ.Next;0 E2 E2 b7 X* R* S- W3 D0 Z
      end;* k/ h/ n0 Z2 }  {$ [" k- K% N' i9 a
        adoqyinglinqu.Next ;- ?6 j1 n! z8 y9 F$ i
    end;
    ; T6 _# Q, N% S& b' z4 w  adoqlinchang.Close ;6 k2 D! _; A+ }3 F, L
      adoqyinglinqu.Close ;/ }8 |. A8 t: B7 f2 P, P- R& r; t0 u
      adoqzuoyequ.Close ;3 L0 t0 p6 {- u7 h5 g# e0 ^6 B
      adoqlinban.Close ;
    * Q0 I7 O% q5 @6 \9 Q$ ~8 A6 ?1 R# B  adoqxiaoban.Close ;
    8 Z2 W& e# j$ }- k2 e* g  adoqs.Close ;+ ]  j9 r* K  Y3 i; ^$ j0 z6 S
    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);
      S. Q- ~; X) n# }var3 ]' V7 R# Q0 Q4 w% x2 s! _
      str1,str2:string;+ }, i  i1 o# H$ }" r5 ?; i/ e3 |; d
    begin4 w9 I' Y7 a. I% g% Y! A1 Y
    str1:='001';* l$ S$ P( L" U: o
    str2:='002';
    ! U; e4 E/ O! I8 U; [adoquery1.Close ;
    8 h0 p) [# W: X0 e* a. Z9 M% Padoquery1.SQL.Clear ;; U" d0 W! h+ s) x6 Q& w& L
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');( M. e7 V" m! h. }( ~) K5 Y
    adoquery1.Prepared ;
    0 P8 \' G* ?7 b; l+ padoquery1.ExecSQL ;2 b4 L" ]- ]- l4 t, S" m
    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-4-18 08:01 , Processed in 0.466749 second(s), 97 queries .

    回顶部