QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13058|回复: 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.
. O. d' f. p5 O& r( P& V3 K, [     
$ b8 g+ _2 r2 |' T- G% T8 g9 y$ ~5 R     while not adoqxiaoban.Eof
3 u+ q& J' J) \" @3 {     do
) D4 [7 F) i+ q3 W7 D" Z. c; ]1 ^0 J# L     begin0 @$ [/ `$ `8 \7 ]$ ^
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
3 M: X. E3 Z  [! a: B! Z; U     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
) m1 D. `) E0 n  R2 Q     strcode:=strlinban+strxiaoban;
- h; r& c: X! R     adoqs.SQL.Clear ;
1 f, C; J$ U# q2 d5 u     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');% T5 S5 N# \" [  l
     adoqs.Prepared ;! ]( w+ e3 q& S4 T/ o# Z
     try
/ \2 N3 u+ {- a9 A7 B! f     adoqs.Open ;- I$ L& `- m2 D- f: s9 R7 B
     adoqxiaoban.Next ;
3 m! I8 T0 m  Z% g4 Z     except+ l' Y/ f/ {! h- s
     showmessage(''出错!'');
, `  e* Z% I  X4 n* x9 ^     exit;
3 @0 J; C- }  F/ a     end;
' k& S3 `+ w+ O3 [     end;) U# z& i1 d" @
     adoqlinban.Next ;7 A  s( W6 Y: @# x$ @0 v5 @
     8 d" c7 w: [( }' p" |9 u. r1 I
     这是其中的一段代码 好像出错的就是在这 在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 ;9 {3 x1 F" i4 o7 R. j, M9 c; W
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    ' O8 L7 E9 ~  E8 k7 k3 q5 w  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,. E8 ~6 d, V0 o& Y% W
      Dialogs, StdCtrls, DB, ADODB;</P><>type: L. K5 t7 W; T. y
      TForm1 = class(TForm)
    / l3 _- l- b2 M- y4 H9 h: ]8 w! W, _5 t    Edit1: TEdit;9 u; H0 t4 d* ^$ I9 L
        Button1: TButton;& P6 C5 j; V7 t9 i+ a( e
        ADOConnection1: TADOConnection;0 k9 D: ?7 B1 D% z' G
        ADOQlinchang: TADOQuery;
    , {2 b; e7 [1 s, `  a% M    ADOQyinglinqu: TADOQuery;. V6 i; h7 r' ?% t( F& F
        ADOQzuoyequ: TADOQuery;8 j/ v+ c& J- X) @
        ADOQlinban: TADOQuery;+ `# m$ J$ b& R6 k: o$ c, U
        ADOQxiaoban: TADOQuery;; _7 @% x% M6 v
        ADOQs: TADOQuery;! i. e8 `2 j- s$ q
        procedure Button1Click(Sender: TObject);; \' @/ h( A5 t2 y  ~3 M
      private
    # p" f& r  o: R/ k    { Private declarations }8 d. V5 L/ q: o/ O) v
      public2 ^) P  _$ T3 f2 |1 N  {
        { Public declarations }
    # l( o8 p1 b4 s2 ~3 ?/ `  end;</P><>var
    ! l7 H* q/ u) H# b  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);2 a1 F, e( e$ |) _* p
    var9 t; d  w4 A1 Q6 ]6 C
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    + S' _9 `- M7 Jbegin
    6 q( C, `5 B! K& r4 Dadoqlinchang.Close ;0 _8 Z7 `9 v& u9 {* D) k7 a
    adoqyinglinqu.Close ;
    " U3 V3 ^0 s! Z& n) o) G$ |adoqzuoyequ.Close ;
    7 l' v. B1 ?. y+ y% R; n  `* Aadoqlinban.Close ;
    ! N  H9 d9 F* o& y+ I& m1 eadoqxiaoban.Close ;
    + B) B3 N3 k6 Y/ M! x% C' Iadoqs.Close ;
    + d% {4 D8 G  \6 j* radoqlinchang.SQL.Clear ;9 Q% |. C4 L) H7 B/ I1 {6 h
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    - I% H0 q! H: z  N. fadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    , i1 E1 l0 y& o- X& J* Qadoqlinchang.Prepared ;
    * p8 i+ j2 y0 U; x6 O6 W* T; v' N* Kadoqlinchang.Open ;
    0 w; a0 Z, \1 e( j/ [strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );2 F: x; k8 u) [% e9 h8 B) a9 U
    adoqyinglinqu.SQL.Clear ;
    " v9 u. B3 x" c- G( _6 D  g# Fadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    " Q8 m  z8 x9 g2 s9 Sadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    - i) [9 \2 B( z+ p, S4 l) ]. s$ _; ^adoqyinglinqu.Prepared ;- [! k& Q: a% K" w* R2 S( x8 o
    adoqyinglinqu.Open ;
    , k0 i. U: y. ?* Z0 Z, N3 S/ e, q) qwhile not adoqyinglinqu.Eof7 l# C" C: }  Z$ _' G+ K7 Q2 n
    do7 S7 `! f$ l- ]) }4 ]9 s8 l' i
    begin
    4 i, x. s' }3 H; @. y  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    % @0 M% D4 d1 D( F% k' y. r  strcodeying:=strlinchang+'999'+stryinglinqu;
      ?( F6 j6 W% |* c& {/ I: \  ADOQZuoYeQu.SQL.Clear;9 l) Q4 N! J1 o. e
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    2 R, c& \/ b) F' {* }  T. j  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;+ N, A) g  Q* L( i; I3 O9 s7 h
      ADOQZuoYeQu.Prepared;+ |$ A: T! G1 p4 G: \" ~1 R- R
      ADOQZuoYeQu.Open ;9 v  \5 C/ V& z8 f5 ~
      while not adoqzuoyequ.Eof
    , t: E/ ?/ y( F5 U  do
    8 n+ M( n/ y" \) J5 t/ X) s6 `  begin
    ' H! M" d* T7 f6 L$ @    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    # F( S1 H0 l; y! J: ]& Y    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;/ t) K: x2 o2 W) L% U
        ADOQLinBan.SQL.Clear;& `- F7 ~* N1 [  r9 |2 h+ [- y
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    0 J6 X6 l/ ]! I* S3 u' R    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    7 U' ?  R) ?$ m; M    ADOQLinBan.Prepared;
    / A5 \0 b& Y% m% ]! D    ADOQlinBan.Open;
      ~6 @$ m$ g/ O5 R    while not adoqlinban.Eof
    4 {. _) O4 \) T" e) y    do0 i& Q+ m  A: u# B$ L7 _9 U9 A
        begin, J: ?# t# J3 ]" `" C
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );* t0 h, v* {6 F: W
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    ; s& _, u  Y1 Q" W9 C5 k$ G      adoqxiaoban.SQL.Clear ;  u* P, s2 n. H
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');4 E+ U% J; w# C3 Q; ~$ i
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;  d/ E5 [  p* p
          adoqxiaoban.Prepared ;
    : E6 D, i  z9 y$ }0 u      adoqxiaoban.Open ;% ~2 m% `9 T! p& P
            while not adoqxiaoban.Eof
    . L2 W, P* O5 }; W$ u0 `# X        do2 @$ ]3 w8 Z4 _' @& P, {
            begin
    9 b7 b7 K: U; x          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );; j1 y* \# y& r; |9 {
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    * p2 Y4 W; q% v) g& r" m- q0 E8 _          strcode:=strlinban+strxiaoban;6 _! S/ u" y) P9 P( V4 ?
              adoqs.SQL.Clear ;( I4 n( p% S0 m& G6 J
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    ) A6 a! v4 F, v3 d2 G9 t, x          adoqs.Prepared ;
    ! X, b* j5 @) T1 Q9 j- B          try9 w; y3 v8 i3 }- m
              adoqs.Open ;' K: I+ i3 r* f' M/ ?! C
              adoqxiaoban.Next ;& Z( k6 \" v/ i' y+ i4 _
              except6 b9 W- V' s3 t6 C
              showmessage('出错!');) C, s6 C+ A: d/ C: e
              exit;
    " v' }/ S( j$ ^4 v1 L          end;; K$ C' {" ?- e& F
            end;* f# t9 O4 d2 h, J
            adoqlinban.Next ;& _! m7 J* U  `5 T7 H, i7 E
        end;. r5 b5 ?) U* U# y, i6 {3 {
        adoqzuoyequ.Next;
    6 \( I! @" F! g- j- l2 E  end;
    0 ^' M# C) K/ j' M3 U9 G1 `3 r% a    adoqyinglinqu.Next ;
    6 \) N# y* Q" q; }& K5 w% ^9 q' [% ~end;
    : N9 W' |( L) f6 T: q: j) \6 H  adoqlinchang.Close ;9 D4 X: D4 E, I5 O& K' I+ u
      adoqyinglinqu.Close ;
    2 u6 o" j# M  U  adoqzuoyequ.Close ;% F8 Y; J) Q' F7 h8 R
      adoqlinban.Close ;
    ' ], h! h" q+ U: I, Q) t  adoqxiaoban.Close ;1 J/ X5 u6 V; ?6 f( y. r) M' g* |+ n
      adoqs.Close ;
    2 u8 ^' ~; y: T) q% [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);
    3 B- Q6 }  h  o7 }0 z/ Qvar# n. D9 U& {2 w3 g& `
      str1,str2:string;
    $ r8 k7 Y% I7 W. ^2 w! |! _begin% }9 m! @8 C! T+ d' n9 y
    str1:='001';
    - S: U! _2 {6 h/ Kstr2:='002';
    , u6 E1 x$ x5 M/ w) |+ B' F  wadoquery1.Close ;! E4 |5 W  t& z$ u' Y
    adoquery1.SQL.Clear ;3 X# _' `" E5 Q' b
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    * E( o5 c  K) J9 C! k9 ]adoquery1.Prepared ;
    - V1 E& c5 L' O2 J+ R' N/ W; i5 dadoquery1.ExecSQL ;
    - O3 q6 C5 L* z; N  o$ P4 ~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 18:05 , Processed in 0.461014 second(s), 98 queries .

    回顶部