QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12890|回复: 10
打印 上一主题 下一主题

[求助] 关于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' v7 x* U2 ?5 q7 Y1 d/ `$ ?
     ' Y; w; ?! ^: e
     while not adoqxiaoban.Eof6 g# N6 Y* }( O( C6 y- J
     do# j) j, X2 z" X1 K
     begin
9 @  G- C0 y% A( W  T* ?( z     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );7 ?6 m+ h1 A2 k4 Q/ \3 \6 s
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;9 j1 I$ J5 }, N
     strcode:=strlinban+strxiaoban;2 J2 d  L, D( A
     adoqs.SQL.Clear ;
8 M. _0 c. C- g3 Q( A- g; Y     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');1 s( G' U4 `  @/ `1 c- m: Y7 e
     adoqs.Prepared ;& S6 I) O( i: n! B4 _# _
     try4 m7 _8 n3 P! t8 s) n) I
     adoqs.Open ;, |* |8 N8 i6 [6 t& `& _+ Y
     adoqxiaoban.Next ;
0 G+ n9 J6 @, v" r, Q& ]     except& a9 e$ G, b5 f* R6 P# K
     showmessage(''出错!'');
7 u  Q& z/ V0 X5 P     exit;3 m/ t' v' s. O( G) c* i  _) y; B
     end;
! K7 x, T( }% b* Z     end;
  ^" G; b5 v: I, j% ?     adoqlinban.Next ;
0 `* v) W: A" a/ Z     5 a+ q  Z) U) \: J2 ]
     这是其中的一段代码 好像出错的就是在这 在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 k) [8 u) c4 Y2 y8 v) U你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses+ l* o% T1 ?' y. k3 k+ j% _
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7 ^. l, O: c5 R0 ]# i. ], x  Dialogs, StdCtrls, DB, ADODB;</P><>type& x: v5 B7 E0 B3 d  {3 b% e2 v1 `- r
      TForm1 = class(TForm)" N/ {; M1 z. W* M; y7 V+ k
        Edit1: TEdit;
    . U1 {! g3 J$ ^( W& Q! f6 f    Button1: TButton;1 E2 z: X# x9 f$ J5 O
        ADOConnection1: TADOConnection;
    1 W, ~' Z( ?' A' w    ADOQlinchang: TADOQuery;9 _! Q( }0 J$ e2 b4 I5 q) a
        ADOQyinglinqu: TADOQuery;$ }8 v) I6 d& j2 Q# p, \3 G1 p
        ADOQzuoyequ: TADOQuery;
    $ Q5 X0 x* [5 A' h$ i& {    ADOQlinban: TADOQuery;
    0 B  X! \8 o$ s7 l8 X  s/ n' t  U    ADOQxiaoban: TADOQuery;
    . ^5 X4 z1 M# }/ q# s    ADOQs: TADOQuery;/ N0 I5 X0 W: u1 k
        procedure Button1Click(Sender: TObject);. C3 d, S& c% c( G* U/ }
      private
    8 D( M; _5 e/ M' T- E    { Private declarations }
    3 l1 b! g) M2 A' x6 r  public, R2 w8 s4 I, ?1 ^& U
        { Public declarations }
    % O* h8 C8 Z; e. O' ~# M% Y3 U  end;</P><>var: ?- z! H4 v5 d. m
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    ! v  S8 F- N( U8 G4 fvar
    6 }) S% j9 b. x" u8 F7 J+ H3 |% Astrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;# f$ o+ Y! ]6 \( @2 p8 m
    begin8 `4 Z1 Z0 d, x8 \+ G
    adoqlinchang.Close ;
    ' w% H; G* ?/ `adoqyinglinqu.Close ;
    ! ]8 p" f7 S7 P" n0 v+ Sadoqzuoyequ.Close ;
    # t% T, G$ R# N' N3 cadoqlinban.Close ;
    ! C" C. V8 O7 A& q% c. vadoqxiaoban.Close ;
    " h/ y/ X2 C1 d% p1 Oadoqs.Close ;" J. R$ g+ {2 m# g( J" ^# n
    adoqlinchang.SQL.Clear ;
    & r. B8 ?+ F6 N- X- k( h! }1 Z$ h! madoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');) o8 G/ m5 Q" _4 I0 _8 f7 f
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;, Y$ I; t8 |2 k# i
    adoqlinchang.Prepared ;
    4 k5 }% Y1 F/ K! m! {$ {' a% _adoqlinchang.Open ;) s; t5 V3 j  q- s7 K
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    0 t! p% q2 s( s# Y$ aadoqyinglinqu.SQL.Clear ;
    ( N( e% U7 K2 y4 `adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');+ E/ W( S9 X; g# x1 V" t( i) W8 U
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    & j9 M2 l. @% Qadoqyinglinqu.Prepared ;
    6 _7 ]0 u0 A/ Q6 u3 J/ a+ eadoqyinglinqu.Open ;
    - G% k( f2 C) D) H- I. Nwhile not adoqyinglinqu.Eof- J; C* L1 T3 v! f4 |. u4 I6 W7 U
    do
    ' G7 }' r; }8 K5 c2 wbegin7 s0 t: N( I  ^; d4 m1 E: R
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    ( F* P: z& M/ k/ U  g  strcodeying:=strlinchang+'999'+stryinglinqu;
    5 q* ^& `% g7 q  ADOQZuoYeQu.SQL.Clear;7 ~0 P' w* P: d/ x/ M# Q
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');* w% O+ C2 x# D) X* L9 C& d8 I
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    * Y+ S8 I; g# A7 `1 W& A( o& r  ADOQZuoYeQu.Prepared;. |: f& c+ s" X- z
      ADOQZuoYeQu.Open ;' t$ E% K. e9 w0 f2 f6 o* Y4 g! P7 `
      while not adoqzuoyequ.Eof# x$ l, `5 \& \: `/ O1 s, c
      do. E8 s9 m/ G, G
      begin
    ( _6 l( {4 M" |- R    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    $ Y' Q; E4 j& D; ?" }3 ?- G    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;/ d) j# t# W: b+ E- c0 r7 X6 x' Q
        ADOQLinBan.SQL.Clear;" ?- j) x) g2 E# Q& e/ X
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');/ f0 |, {- i& x7 K. F# a
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    5 z5 I: N0 |$ @    ADOQLinBan.Prepared;/ C+ h: U  m- I* v6 N/ O9 o; B1 R
        ADOQlinBan.Open;
    ( f" w* y$ x6 l% Z    while not adoqlinban.Eof
    % u" R; S* T9 w* p1 [: h    do7 F& d9 }. ?8 h6 b
        begin
    & b# v, u) l2 `0 E" F3 h# ?      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );% c% a/ g+ X; b  ^& Y- O! S
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    / f/ O/ M0 I+ H0 a) E; z      adoqxiaoban.SQL.Clear ;0 G: z4 k) m+ {+ L/ l
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');9 m& _4 W1 g: ?# ~) \% n
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    " h9 P5 e. Z. ^      adoqxiaoban.Prepared ;' e' u: C- f% K$ x
          adoqxiaoban.Open ;6 o1 h& o" h. Q. i
            while not adoqxiaoban.Eof
    - z. U3 L. t( c0 e2 L7 B( L: V        do
    6 }4 D4 e$ W4 [4 ~( ?        begin
    * f% f$ l$ `3 b# q+ i: H          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );7 |3 ^6 l& G# \; w* |: i- L* M3 x6 }
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    " O9 h, e9 z. C          strcode:=strlinban+strxiaoban;. H1 U+ |9 f* j
              adoqs.SQL.Clear ;
    8 ~4 W& }8 M3 G          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');$ B% \7 W) m: c" [: b9 v8 y6 V
              adoqs.Prepared ;
    ) e  Y4 E$ C: F2 V1 L1 e          try) v! b; h3 d. P
              adoqs.Open ;1 v5 u8 c4 T9 v. i% E& ]6 N; r- r
              adoqxiaoban.Next ;& T  y7 O" k" A1 r
              except
    0 ]) [, _+ a1 S. j! v3 c          showmessage('出错!');
    / q" Y6 j6 x0 C          exit;
    1 P/ U5 k3 U/ I% s8 B0 z          end;& w! m/ G- b2 Q* e) p! U$ J% n
            end;
    + k0 K5 G- Y. D        adoqlinban.Next ;2 e6 T, G! L4 P
        end;
    2 ?$ K4 O- R& t9 i7 a    adoqzuoyequ.Next;" M" v- M4 l( ~# X* V/ N
      end;
    , I6 \% F7 B7 W  R( C    adoqyinglinqu.Next ;6 [0 ^% e8 L4 M- G
    end;
    ( {) s+ a2 d1 s$ t3 L  adoqlinchang.Close ;
    : ?) A3 F" h; |: |3 g6 ^  adoqyinglinqu.Close ;
      _! n8 V& e5 h2 ~4 e& y. N( ?  adoqzuoyequ.Close ;
    / J6 a  K5 F' Z- w+ g1 N4 A2 o  adoqlinban.Close ;
    7 O0 M6 L* M! J+ C  adoqxiaoban.Close ;
    . u2 \  u; {  p3 r& Q% Q& I  adoqs.Close ;$ g- N+ T* I# z  Y* P; G
    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);0 g2 a# U" }6 ^& z0 {' K! L
    var7 F2 w% V- t, O. p
      str1,str2:string;1 \* j/ o! T3 P! G
    begin
    1 d8 ~4 I* l4 A. @str1:='001';
      g8 `* x4 o' b, d1 Vstr2:='002';0 x5 e: R" w2 [, t
    adoquery1.Close ;5 }; P# a  A) d# {) f( y" |, I
    adoquery1.SQL.Clear ;, l- f+ C# F& l. b8 r% _- B
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');; R8 [) b+ k+ u0 n7 V
    adoquery1.Prepared ;
    ' c6 {4 l* t1 _* l; J' ?4 [adoquery1.ExecSQL ;5 _7 j5 G; {4 ~5 O' L& a$ b; j4 a6 A
    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-17 23:37 , Processed in 0.544872 second(s), 95 queries .

    回顶部