QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13051|回复: 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.( u8 O- N/ k- m& Z) O
     
2 I* ^: L/ `$ V$ a0 w; H     while not adoqxiaoban.Eof
; k# x6 t1 K& w6 ~, \" K- a     do
; \& L1 C6 l: q3 y6 |: M     begin
% F! L6 M: d) J1 j1 j     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );+ Y, `  v. {  D3 J
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;; u" V- }: I8 e# q" z9 B5 @
     strcode:=strlinban+strxiaoban;
  D7 }, R% b( I# d7 B. h     adoqs.SQL.Clear ;4 L+ q2 b; P: V# a7 F
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');$ Y4 R8 n3 Y, @4 z* p! z
     adoqs.Prepared ;
! l2 a" N6 [: s/ g* _     try
' D. h4 w( R6 Z( q3 |% I7 u     adoqs.Open ;
5 l4 Z/ q2 I% O4 z+ ^# R& s     adoqxiaoban.Next ;
0 B2 G( R+ j' l3 f( a+ q     except9 z' K0 B( P* n( P2 \, C$ s
     showmessage(''出错!'');2 p" g! N' @  E5 |) {3 z7 D
     exit;$ L9 {& T' R9 E0 Z
     end;
: Q4 m2 ~8 u$ K& ~     end;
5 q2 u0 d8 k& x) w( A     adoqlinban.Next ;, f+ g& G- c' W, }! I. {
     + p9 l! a+ k( S5 F( ]# I/ Q  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 ;, ~+ d+ {- n4 ]; X. _$ Y/ n
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses# Z) O8 c, n0 s7 m* U- c  h
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    3 Y! f& F4 q' I+ e# k% }- ]  Dialogs, StdCtrls, DB, ADODB;</P><>type' h% m9 G& @2 Q# [. t. F+ W
      TForm1 = class(TForm)
    ' S0 s- t# Q6 }1 |% ]) o6 X1 W    Edit1: TEdit;3 P8 G! L$ C- z" L+ r5 d1 u
        Button1: TButton;* b$ Z! ~" E1 |3 b8 ^5 S  Y; b: Q
        ADOConnection1: TADOConnection;2 U: u; ]5 p' ?/ T' w, h5 d
        ADOQlinchang: TADOQuery;
    5 r" _, g/ v8 @* N8 Y6 d    ADOQyinglinqu: TADOQuery;: T" h. F2 \2 s0 k/ I: v; D
        ADOQzuoyequ: TADOQuery;6 F. S3 C' t/ j( N4 J2 u5 e8 t
        ADOQlinban: TADOQuery;
    " a1 Q+ C2 t6 E( r# M    ADOQxiaoban: TADOQuery;( h1 T1 Q3 \+ g" x. S9 t
        ADOQs: TADOQuery;9 b, x) z% g4 U1 ~/ e
        procedure Button1Click(Sender: TObject);
    & {' `, w! U( J5 j1 y0 s! Z  private
    * W: i( V$ v3 Y    { Private declarations }
    ( ?: p0 ^" c* T  public7 W1 n1 n8 m& h; H, d
        { Public declarations }
    ( N; i: |0 |# I0 K9 ^; g. ?( R  end;</P><>var
    9 V( Y2 s: {' {( M+ F$ j7 p  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);+ x( F* w. d* e( m4 ~
    var/ {3 ]7 u! O4 [3 M; p# x2 g" ~) \
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    / x$ n" k: q+ _% Ibegin+ u8 K$ P3 p6 m7 Q$ e) h
    adoqlinchang.Close ;
    0 F! w( w1 V5 L$ E1 Tadoqyinglinqu.Close ;4 U8 x; D& R0 @: x0 @' f1 e
    adoqzuoyequ.Close ;% o0 C) r# @8 Q: ]1 P( q
    adoqlinban.Close ;
    2 F" B* @3 a+ J6 y: j* W5 Vadoqxiaoban.Close ;0 l8 Z9 {% |# x7 b2 o, v
    adoqs.Close ;
    ' W/ a9 c7 n' m# ?adoqlinchang.SQL.Clear ;
    8 g$ c1 G& `% u6 J% ]adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    . D1 d) ]" q1 H# g% X1 @adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;& k+ k1 r2 U% L: t
    adoqlinchang.Prepared ;6 j% h7 F. G0 Y1 d, U4 w
    adoqlinchang.Open ;9 e9 `! W3 |1 e6 c6 t4 b! u
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    ( S, m- m2 a& \: x/ Sadoqyinglinqu.SQL.Clear ;
    9 I) X' R  O# X8 N) D' k  cadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    0 i! s9 W  W6 u$ M% Z# @. tadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    2 ^2 O; L" q8 G3 A) |) zadoqyinglinqu.Prepared ;9 F. @# j9 O/ ^9 p6 E
    adoqyinglinqu.Open ;
    * T/ C* A5 M1 o! J2 s, q7 Pwhile not adoqyinglinqu.Eof
    4 u3 X( w/ _! e/ b; ndo$ M9 `; z/ a5 M) Q# S
    begin  k8 r1 P: W6 o
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
      `# \0 y7 D3 \9 i6 R, i/ m  strcodeying:=strlinchang+'999'+stryinglinqu;
    : p: C: G8 z8 @. G1 ?# L  ADOQZuoYeQu.SQL.Clear;& M4 q" [+ }, j+ R' r4 j1 _
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');4 ?" Y+ T3 O; f: p
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    5 v4 ~* h% ]4 b0 a, t( ^' C  ADOQZuoYeQu.Prepared;
    7 o) o' T! j2 V  c  ADOQZuoYeQu.Open ;
    , W( l0 D! p+ |& ^; C% E( h  while not adoqzuoyequ.Eof
    % y6 ]% B! G0 ~  do
    - W: G1 w, R' `  begin1 v2 Z* U1 k! B
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    % h  V. p+ S4 r# m; E- M# v    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    : V2 v9 e/ Y& I% R7 b    ADOQLinBan.SQL.Clear;
    8 R) N& m, d2 F9 D    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    * L; _9 q" X; E$ q- P' ?" h/ l4 j    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    2 l1 K) d4 T7 A# R2 F: J6 X    ADOQLinBan.Prepared;
    ) _' H& Z  ^% j( x# c    ADOQlinBan.Open;7 c/ v2 ]9 ^4 b7 E6 b9 x
        while not adoqlinban.Eof
    9 j0 H9 n5 M  s3 x) y+ y' [    do
    ; u% p* l. J+ F/ m; C+ }# I    begin
      R( V7 j# z8 d- z      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );. }1 Q8 N4 M+ m- Z/ [1 \
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    : c" W& S  }, o: \" Q      adoqxiaoban.SQL.Clear ;
    ( i6 r1 ^3 @( C* K      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    & L* I1 u, M- o1 s  d      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    4 n! g$ l5 U7 w- h      adoqxiaoban.Prepared ;
    0 E. s. d/ p  R# A      adoqxiaoban.Open ;  a1 q0 t  u" b( }5 J
            while not adoqxiaoban.Eof
    7 W2 j" m( u3 r: `1 N        do/ R+ S9 J  X! |6 p3 Y7 C
            begin
    " F5 ^" L( {" a/ x4 `' L0 e          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );% T/ a( x) C" p+ M% K1 p
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;( d2 h6 T/ G$ U' e/ t" T' o
              strcode:=strlinban+strxiaoban;
    7 o# G7 [- D, B6 I0 Q          adoqs.SQL.Clear ;  @1 \$ }2 T' B. g% h
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');* U5 d. \4 |* X/ Q' E! }, P
              adoqs.Prepared ;
    9 W8 o6 z! J7 ^9 p8 V6 T. K          try
    2 Y- m) A$ u2 e' f* c6 M5 O, O$ x          adoqs.Open ;
    2 u  z/ H9 O% g* \% F. y  g  ^5 M4 X* d          adoqxiaoban.Next ;. m8 M7 D7 t. a, M
              except
    * p( T. I* k' C: p7 n; ]% `1 q          showmessage('出错!');
    - ?! Y5 _0 `; ]: v$ y          exit;
    0 w5 V3 d9 A# Z: z          end;$ n4 N6 l3 a) \9 u) ?
            end;
    , |7 y+ \9 E! l/ @/ l        adoqlinban.Next ;
    / J1 c" u* S9 r9 _    end;
    3 c6 R/ p. h% z    adoqzuoyequ.Next;* P) \( S* B) H. f( P
      end;
    2 i+ \6 |. r9 X. b% \0 [- K    adoqyinglinqu.Next ;
    ( w% w) b" [2 m% zend;
    1 y- m: H& C! n2 C3 L7 J' v  adoqlinchang.Close ;$ z  S( d3 Z- U$ i% T9 r
      adoqyinglinqu.Close ;
    7 Q  W- J% A8 f/ N  adoqzuoyequ.Close ;& Q% `) `2 m3 f, x9 P% D
      adoqlinban.Close ;3 |( _' u  }5 u- W/ f% ]& b
      adoqxiaoban.Close ;, u2 q+ n; }" ?4 f, }' {6 L: W- G
      adoqs.Close ;' \1 e) l- ~$ T7 _& I
    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);- G8 i! z: A/ O' B. O1 e8 W3 R
    var
    ! Q9 K, q6 A) o, K% o) Q" p* d6 B  str1,str2:string;
    9 h1 P4 Y* v/ Zbegin1 u% U8 N3 r  @1 i% P+ F6 D
    str1:='001';
    9 L* P5 C1 n3 Ostr2:='002';( E; [1 Q8 h0 u  x7 X
    adoquery1.Close ;
    ' ~  E( U" H6 q( [0 q! \adoquery1.SQL.Clear ;! Z0 M; h0 W8 b9 d* j( W
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    0 s' t; e! b0 j6 {' Yadoquery1.Prepared ;2 Z1 F! z$ \, C7 g/ D+ f
    adoquery1.ExecSQL ;. ^' C$ I6 H7 @+ L: ^: X! o! t9 `
    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-18 09:38 , Processed in 0.407160 second(s), 97 queries .

    回顶部