QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13184|回复: 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.
& T& b  R1 l% ?4 Q7 k5 J     
1 \! c3 J6 K+ g) p4 l* j% u# T     while not adoqxiaoban.Eof
( y: M- a. x* Z! ]7 K0 _     do
1 s6 G& T7 K) O/ ^     begin8 O8 {- }; Q1 F/ U
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
8 [+ s0 H3 `9 f! o. y) w5 Z6 t! [% N, \     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;: p$ _* K3 z6 Y" b9 H( L( I
     strcode:=strlinban+strxiaoban;
$ L- g! e, x3 i     adoqs.SQL.Clear ;% B: D& X( H  r
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');7 u4 L4 ]1 D. W; v
     adoqs.Prepared ;
) T$ S- b/ [4 L7 U, T- {     try
5 h/ |" Z, C. D: b+ O1 t     adoqs.Open ;
* Q: L) Y: t/ x     adoqxiaoban.Next ;' L, y. D6 A2 Q; N  L
     except. m9 x' `6 U& k9 S
     showmessage(''出错!'');
- {# F( V0 K: l; B: @4 q: M, e     exit;' Y, m' |2 X! k3 ^7 ~6 r
     end;. S9 F  k+ B9 x* m9 w+ A; i
     end;
$ k6 [- ]9 O: v! j     adoqlinban.Next ;' M7 p+ X* B/ G& n
     ( \8 s' k" J4 h9 \9 R
     这是其中的一段代码 好像出错的就是在这 在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 ;) ]1 h0 a/ V% V' c9 W9 o
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    ( B3 l5 a5 ?& B2 F1 `  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    5 j" M9 ?3 F$ f. h8 i# x: C  Dialogs, StdCtrls, DB, ADODB;</P><>type
    5 l/ U8 t+ ]# a3 G  TForm1 = class(TForm)3 A- ^+ Z7 I3 Y  \8 b
        Edit1: TEdit;
    , ^9 ~! ~! \( j    Button1: TButton;
    ! l+ t3 j  X. ]$ h; \9 y    ADOConnection1: TADOConnection;& Q) C' H, ~+ n, F' I
        ADOQlinchang: TADOQuery;
    7 u. F" p- l  A' D3 |    ADOQyinglinqu: TADOQuery;
    2 J4 S3 `: X% Y  u6 n: q    ADOQzuoyequ: TADOQuery;
    ' y; Y8 }8 y* M* E0 K    ADOQlinban: TADOQuery;
    # ~. b. V5 m- ]' ?$ V, }5 K    ADOQxiaoban: TADOQuery;1 l- U3 V5 C( R: P
        ADOQs: TADOQuery;- }! Z0 d  o8 v
        procedure Button1Click(Sender: TObject);. ~8 x8 w* x1 D/ c
      private7 n, D8 r' c* W7 @9 ]0 P5 K7 `8 O
        { Private declarations }
    ) U5 U0 j1 r& @; N- P9 z5 _* u  public
    ! w5 j' A5 c' D1 W9 Y3 \8 b3 Z    { Public declarations }
    7 q7 t$ o* W$ r  end;</P><>var
    1 K$ t% J' R7 g7 F  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    ) f% v5 C2 d, [1 j( jvar
    , c" I: c  _$ B* Y- E5 G0 z" ustrlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;9 G4 \  F& d! n! |
    begin
    - B0 n  S. ^" p$ Sadoqlinchang.Close ;; L2 v0 Z, t' S6 U, Y+ D
    adoqyinglinqu.Close ;
    3 x6 ?2 E( m1 d' J4 s  |( padoqzuoyequ.Close ;; L9 {5 u- D8 b5 \
    adoqlinban.Close ;+ O( C/ R# ?/ I6 F
    adoqxiaoban.Close ;# z$ ?: D) {$ u$ c" s6 p5 N
    adoqs.Close ;
    ) y, C2 K, `: \& m6 R# k, F$ ]$ xadoqlinchang.SQL.Clear ;! U- s# C$ \$ e* G  n% Q/ b. }
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');) Q- o! t& V$ M1 G: I2 S
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    ! M( p5 p3 A7 r$ c8 }5 xadoqlinchang.Prepared ;
    ! k, R, w; {. v/ c( aadoqlinchang.Open ;
    , h3 C7 a, D7 O' W! E; _strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );4 b% p) y2 v1 O0 c& t6 P: r
    adoqyinglinqu.SQL.Clear ;
    , ~/ D4 v3 p& n4 v/ [adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');' M1 c  }, A0 i' A. T
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    . t' |2 F1 W: i* L2 F+ ~adoqyinglinqu.Prepared ;7 P( a2 e1 R& b
    adoqyinglinqu.Open ;
    + U4 z2 D5 c% b, u5 U  T! Ewhile not adoqyinglinqu.Eof* v7 A( _( f1 L% G
    do4 @) b7 q8 o. c: Q% z. K0 f& f) q
    begin
    # i6 ?3 A0 M. I; J; w  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    4 L: E" g0 [8 k$ i% f' O3 _7 w  strcodeying:=strlinchang+'999'+stryinglinqu;
    7 M; g& f; B: B$ Y+ t- E9 P  ADOQZuoYeQu.SQL.Clear;# w% X3 U" E2 q) _1 n
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');6 T& M  e/ [, O) B+ _
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;2 W; e0 P7 g* I
      ADOQZuoYeQu.Prepared;
    2 d" ]! _- o2 r8 h/ c4 {  ADOQZuoYeQu.Open ;. f, o' I" W' I" n9 R+ m: z$ l: e
      while not adoqzuoyequ.Eof8 E% I* F' l, s% C4 s* Y9 N
      do3 c; n9 [  w! W' v
      begin
    4 c- v' y2 y: N+ m: _  b; C    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码0 E2 W& ~" J: d( i
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;# _& f$ e1 r3 R0 r* x1 _" |& R
        ADOQLinBan.SQL.Clear;& p7 \' Q" l6 Z4 n
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    " D9 \8 N( Q' M; J9 }8 k: B    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;- v9 H1 ^, I- f5 f4 j1 a# W
        ADOQLinBan.Prepared;/ P; H. K$ F* K: J5 ?# F7 c" Z
        ADOQlinBan.Open;
    9 ]+ y5 `% [3 P: h$ c. ~    while not adoqlinban.Eof* H7 N6 @. p7 H/ [; M, E9 w
        do
    4 m, n) `. F9 a7 o( x    begin5 q: q  y+ ?  X+ U" d
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );# U# U7 J$ S6 |& X2 P, F
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    : Z0 O2 i% i9 h2 M      adoqxiaoban.SQL.Clear ;
    0 I+ p( z0 R* S& E+ d, g5 t      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    ) M6 K- H; C4 n' G      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    1 v. ]: {: b# H8 {& u) B4 c      adoqxiaoban.Prepared ;5 A7 ^) v: d- k: N! X5 d1 H
          adoqxiaoban.Open ;& f5 \7 B! @+ `4 M$ o# x
            while not adoqxiaoban.Eof
    " H# S3 W7 b, x% {( E+ L. R1 J        do
    1 Q% F, ?* ]* t! s, U: m        begin+ ?: A3 ^# L8 e. n+ d
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );; o% K7 m8 ?$ w+ ]* U
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    5 t3 O  P" V( U5 r' m" o3 U+ m          strcode:=strlinban+strxiaoban;1 ]2 b9 b/ Y4 n9 O" f: j
              adoqs.SQL.Clear ;' y: R7 p) \3 `' n# C& T4 O4 _
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    : y3 _4 ?" |( b8 F9 A: ~          adoqs.Prepared ;
    1 M& }8 A4 E% C; T, }1 S' M# _' k4 S& z          try; D) a. M7 t2 U6 |# c/ d
              adoqs.Open ;
    / S' f; `$ u2 p/ A0 V          adoqxiaoban.Next ;' P9 K; ^. [* |# `( J
              except
    . A1 ~( q* K" b9 D, M+ t          showmessage('出错!');3 p$ b& {/ i: G, w. N% L; D
              exit;
    ( i( \& w( w' b          end;
    $ B. n# a9 ~( G  z! _        end;9 Q  N! m2 ]2 [! g3 `
            adoqlinban.Next ;
    : E8 }4 P3 d9 B4 s% L3 P    end;4 [4 \% q, i% W+ }& {! R  ^
        adoqzuoyequ.Next;
    ; Z+ R+ P$ J# [7 h' ^" y  end;
    2 w& Q/ a7 S4 {3 U! |7 _, d    adoqyinglinqu.Next ;
    , g! v% C9 V* ~6 O# \4 c, ~end;
    : U: H7 f9 u8 g( t; {" c  adoqlinchang.Close ;
    % z6 @* T, X/ e8 H  adoqyinglinqu.Close ;) N% h4 p: `7 c; F6 G
      adoqzuoyequ.Close ;
    - ]  }0 K. |; ~# l+ C5 A  adoqlinban.Close ;. m2 B6 W- h2 \1 U2 a( I8 p4 V
      adoqxiaoban.Close ;  b, B5 Q. X; u- T( y3 ?. g
      adoqs.Close ;% j1 r. u' ^  m& c; m" {, E9 ~7 k
    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);
    , P) J: i8 B& m( E0 O4 Gvar
    ( A4 V7 v4 Z: k9 \  str1,str2:string;
    6 L4 U" c+ g8 W4 Q/ o5 Ibegin) P, R. t) d* S" U- \
    str1:='001';* B1 G/ n/ R; r+ z  K" t7 {. ]2 c; n
    str2:='002';2 Z5 B" k$ ~/ Q
    adoquery1.Close ;4 Q7 ~# N4 ?) ?$ C4 P$ U0 Z
    adoquery1.SQL.Clear ;
    5 a8 S) m+ B! o! J+ Gadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    # S8 r  {9 ~4 d2 C. Y- hadoquery1.Prepared ;* _$ T4 I9 I- @* O( Q) K
    adoquery1.ExecSQL ;
    7 L  E, \. j; v/ b) m2 R' z# S- Wend;</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-9-1 03:40 , Processed in 0.343516 second(s), 96 queries .

    回顶部