QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13061|回复: 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.; [6 o; \0 E( \  V, ?1 A0 i
     5 G$ b7 ]0 x. T% F! G; p
     while not adoqxiaoban.Eof
7 X8 t( v$ C6 g. h2 x: q     do8 }0 c4 B# j& @  s; K" |1 u
     begin  W3 Z4 z# I6 e* ~: E: n
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
9 R2 n0 w. s% J/ b     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;% j1 T' q) n* N, t! `! U' l! A- l/ t
     strcode:=strlinban+strxiaoban;. m+ c5 R. {% O% m2 E6 Q$ S$ W- o
     adoqs.SQL.Clear ;% D2 H" |2 _0 c1 |! w% ]; [
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
! q1 x' J: P3 ]0 ^  ^  u6 i+ l     adoqs.Prepared ;. G5 M+ c2 x- k; h
     try3 K3 `- j3 c' G" r0 Z$ o0 |
     adoqs.Open ;
6 l+ O  R: x0 Q. p' N8 x* j     adoqxiaoban.Next ;
9 a- B- C! b: G     except
" E) z" v- O/ ?, X/ P" D1 U( [     showmessage(''出错!'');2 M( H6 z3 V3 B7 _5 m! B
     exit;$ y% X! f4 h! p6 e
     end;
6 ?8 f& y) L6 h# C$ F$ G     end;
1 A4 O* X& i4 ]9 I     adoqlinban.Next ;
. s  O8 \, a# q  c/ M$ H     
1 A/ n( s- `4 w! 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 ;8 ?' Q- Y5 @" g
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    5 v( ~) M/ p, B1 e3 p( l  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    ; `% O* N; l4 p5 Z& s% o2 \5 P  Dialogs, StdCtrls, DB, ADODB;</P><>type
    4 L3 @! u5 k) N5 E' b8 W6 d) M& p  TForm1 = class(TForm)2 y7 e3 _7 ~8 c) \4 v) k( f
        Edit1: TEdit;2 q0 H& G1 g" @' j
        Button1: TButton;
    0 M# k3 }" w4 g    ADOConnection1: TADOConnection;
    : K. e( x! s) G/ D6 l1 F' b    ADOQlinchang: TADOQuery;+ ~2 X4 ^; I# ~1 |" q3 H
        ADOQyinglinqu: TADOQuery;
    / [8 [/ f; s- q1 \- L    ADOQzuoyequ: TADOQuery;
    ! C) {% E) n8 o" C4 K* a: A    ADOQlinban: TADOQuery;" N5 T% N, ]& J
        ADOQxiaoban: TADOQuery;+ [. }" o6 F/ p- }& u
        ADOQs: TADOQuery;
    8 E" a7 q  Q! R+ R    procedure Button1Click(Sender: TObject);4 k. ~  i* i5 f' ^5 j
      private
    ' X, {* [8 l# T0 L% A( B8 n4 b    { Private declarations }
    # N+ \) c; d. b  public
      c7 Y. Y7 X2 I9 q6 ~    { Public declarations }) k" i3 l% Z4 W7 b' |0 ^7 j' Z$ q
      end;</P><>var
    , T4 u, B2 V* t* i8 n6 g9 T  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    6 @4 e/ I7 [: _( i, I6 Hvar; w( w+ E: d! O2 V
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;8 p* |1 p1 d2 ]% }
    begin, X9 g  C. \4 u* h! I
    adoqlinchang.Close ;
    % o' e. n7 U; n& \$ T6 h9 n' r( K) Qadoqyinglinqu.Close ;
    - ^& S# _; D5 W0 n% t- D& ^adoqzuoyequ.Close ;' X3 r: k( h  j: l- k, T+ S
    adoqlinban.Close ;
    5 Q" i) W6 w6 c+ k$ m. jadoqxiaoban.Close ;
    2 K6 ^  a8 F& E. e7 Madoqs.Close ;
    0 z3 Z. t* w9 k6 O+ \7 v, fadoqlinchang.SQL.Clear ;0 B. h6 F# A/ v* E% `; S* ^
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');& s+ s  }, a" L0 [/ F. d7 I3 _
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    $ i& C4 ], y$ ?- qadoqlinchang.Prepared ;. u$ I8 r/ h" J! Y6 a$ w# c
    adoqlinchang.Open ;+ c0 Q7 C7 A' G& W4 Y
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    7 O; i) f5 b/ e9 ?adoqyinglinqu.SQL.Clear ;
    3 b8 G& `; U2 q( `adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    4 ~1 d/ n" t4 F7 A' @* oadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    0 H# J* Z% u& N; zadoqyinglinqu.Prepared ;
    % \" ]5 ~( m7 q) ~4 H% madoqyinglinqu.Open ;
    " w8 I1 B1 d" m. V$ ewhile not adoqyinglinqu.Eof
    9 N4 g  D/ U( ?: C' |" pdo- S3 Z# Y% t" G  q
    begin
    3 `4 A7 p! \5 P2 x% A2 q7 a# {  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );, a8 f" }; s- y- ~: n, r
      strcodeying:=strlinchang+'999'+stryinglinqu;
    * m6 F8 q: Z, A3 T$ I2 S  ADOQZuoYeQu.SQL.Clear;
    3 x) y+ C# u2 y  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');, ^7 E4 s( [2 E- O# I: C9 s8 f4 U/ D
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;! W5 }, G8 {. O+ y9 |5 }
      ADOQZuoYeQu.Prepared;
    8 p4 j! M- b5 ?& [- d# T9 `  ADOQZuoYeQu.Open ;2 N* {. J8 t. O. K* A7 h  V8 G! z7 ?$ C
      while not adoqzuoyequ.Eof
    + k; `2 z, y  Q- P9 ~1 S  do
    * J* {" ?  }  D, R, z9 \; q  begin8 u: `) ~4 U7 y: k% B/ g
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    0 o2 U0 a" X8 y+ l, h5 v    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;, S$ {& ~  z1 Q0 J) q
        ADOQLinBan.SQL.Clear;
    % d1 W1 v1 r) `2 L- j# h    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    9 b) P% d  m$ P# C. W, Q+ P( ^    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    ' x( k  [( O; p( K2 Y    ADOQLinBan.Prepared;8 y: j1 a! J# i8 m  g
        ADOQlinBan.Open;
    ! q( D5 @* H" C0 x/ F) \' O9 Q    while not adoqlinban.Eof$ I) j- u0 v; k* I, A& A
        do& a1 l# ~% ]: `7 M) w1 }
        begin8 B( ^+ C7 m4 T6 D+ X! {; G* {( Y
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    4 @0 i/ M( s! ^. `& U      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;) T2 Q" o% G' k* {3 D
          adoqxiaoban.SQL.Clear ;& v: X# p' Z8 T6 c" R
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');2 w# c7 I8 O; {0 z# C* ~
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;7 J) C" ~5 w5 `, Y) L5 U  Y
          adoqxiaoban.Prepared ;
    $ s; ^/ k' u& p- O1 M6 G$ u- @      adoqxiaoban.Open ;
    " V/ v  m( e6 j* u+ e        while not adoqxiaoban.Eof
    8 D: p0 q1 z2 i1 |, x( I        do+ X* T" V; j2 `/ E' }7 u* ~/ U4 S4 D
            begin% j- U4 d+ [( j# v; W* v: S' p
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    * ]3 g4 R( R5 d4 m3 }8 h2 M# Z          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;* E4 m9 ~, f% E# t! L! S: V3 v: k
              strcode:=strlinban+strxiaoban;
    1 @$ `8 x1 H8 d- z4 s+ T+ w          adoqs.SQL.Clear ;
    5 I( W- x" w3 b          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    , ?8 [+ y* _) ^4 V" k  J          adoqs.Prepared ;1 p; }8 ?& z7 D" k5 U( s
              try
    + m8 i/ `5 j, V2 v          adoqs.Open ;" g4 u7 s/ W% ^
              adoqxiaoban.Next ;
    8 Q1 i  V9 \( ?* A8 `9 P% ^          except
    3 t9 A" s* d8 o) i, L& x5 o) U) v/ b          showmessage('出错!');
    5 H8 j' {% a& d* d8 X2 _6 C          exit;
    + a2 i0 C; R" u2 ^          end;. `" y7 `( @# M$ N; t2 |% c6 e
            end;
    5 y; M9 f7 z0 ?# }1 p' j        adoqlinban.Next ;7 W$ g$ B9 Q' n/ g2 D+ C
        end;
    % h( {. R* E  \% S# v' x, ?    adoqzuoyequ.Next;
    ! ]" D  R* z% ~# r4 o* O$ W( z  end;2 X) r, K7 [! S8 I
        adoqyinglinqu.Next ;+ u4 a* L  ~" m6 i$ b
    end;
    3 t% O3 F( W7 P+ I8 X. R  adoqlinchang.Close ;
    * i. L& n3 Z" |- Q4 W  adoqyinglinqu.Close ;
    1 v+ o5 d( _, Q& d. d- {5 j  adoqzuoyequ.Close ;
    ' Q. h. T1 r) n8 \  adoqlinban.Close ;5 l! L, \- \1 C& n1 D4 b2 Z
      adoqxiaoban.Close ;
    2 o4 J& v( p: C$ U. s" Z  adoqs.Close ;& g0 J* z) ]) a. J3 C% R: a
    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);
    ( ?9 v0 u" k) I8 J. m2 w8 Svar6 H$ v6 C, v! ?3 o# H
      str1,str2:string;
    ( o( L7 |! p; z7 t" hbegin
    6 a* E5 E" M$ P0 F  j7 i3 U: [str1:='001';
    ! d  J" E1 o1 \6 w6 Wstr2:='002';
    3 Z# [3 z/ J, t* Y! F8 ?# `adoquery1.Close ;: f: E+ |/ [& H& g4 Z
    adoquery1.SQL.Clear ;
    9 `+ w  V4 [8 J% Radoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    : Z, t# N- {7 Q& u1 H6 p, s! q  badoquery1.Prepared ;
    0 u. A$ l4 a5 p" gadoquery1.ExecSQL ;( R- ]$ ?7 o! S, C2 }
    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-20 17:14 , Processed in 0.688767 second(s), 97 queries .

    回顶部