QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12901|回复: 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.3 s' u. I& }* c( ^
     # G5 j0 U* o9 |' p! O; N
     while not adoqxiaoban.Eof
( w) a! }! _& p0 b5 e# o4 m3 Q     do" J7 v9 ~' z" ^( s9 s4 H! b
     begin
( g6 O/ e$ z2 k6 Z2 l     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
. z2 Z+ B0 F" @     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
6 b- i5 H/ ^. [- g1 s     strcode:=strlinban+strxiaoban;
4 k. E! M- }2 `  @( j8 |6 p9 U     adoqs.SQL.Clear ;9 a1 Z5 ^8 e6 S6 |) u  N; g) R* \  y
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');  b. T/ y+ |5 J0 g" B5 E* n9 g. t
     adoqs.Prepared ;
/ y: k' b" C+ c  }# Z+ }7 e     try# d. q2 u$ i) r) L
     adoqs.Open ;- L: N' U$ g0 `- b) }3 V+ T2 u
     adoqxiaoban.Next ;& |9 ?8 O# c0 T  D# J
     except7 w' Z. o+ t7 O& t: }* }/ K* Y* \. j
     showmessage(''出错!'');& @" K8 _) b; y/ d6 b( [
     exit;5 H4 B5 O: [$ @8 P
     end;7 P5 u7 j+ p) z, S# @3 \
     end;0 ?0 r  ~, W" J2 B9 g2 O8 I
     adoqlinban.Next ;" O9 b8 _) R, v% y
     
  _! `2 f2 P0 g/ }0 e/ O4 d) m     这是其中的一段代码 好像出错的就是在这 在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 ;
    , S+ e  s% n1 w% u3 t5 q0 Q1 Y- ]你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
      @' M* T0 I* c) ^% g  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    5 v' ~" }2 V4 ^: @3 N) f3 o. a  Dialogs, StdCtrls, DB, ADODB;</P><>type2 z" {. M# k, }' o' @0 U0 a. U
      TForm1 = class(TForm)
    ' ~' o" x. d6 J    Edit1: TEdit;
    + I+ O9 `4 _9 ^, j    Button1: TButton;4 c8 U& a4 `# i7 h4 ?! u# I6 [
        ADOConnection1: TADOConnection;
    & H' x7 B0 S8 A- E( N8 t8 ~* |    ADOQlinchang: TADOQuery;+ J* e' q+ o# _! c( c
        ADOQyinglinqu: TADOQuery;
    " J: g9 y% D  S' ^8 D0 d! E    ADOQzuoyequ: TADOQuery;
    1 j) h# [# z8 J    ADOQlinban: TADOQuery;
    * h' R- f2 j4 s    ADOQxiaoban: TADOQuery;7 Q7 w! Z7 o5 o  f0 @" G. k3 R7 Q
        ADOQs: TADOQuery;
    ' }/ w1 u6 q$ l" a" [+ B- {    procedure Button1Click(Sender: TObject);
    9 E) a. U& f" a  private
    % v6 K4 s) i6 ?8 ~+ d    { Private declarations }
      c. M# [; C/ A& R0 W# J& Q  public+ n  Z2 ^$ k# M' o- H/ O% o9 N
        { Public declarations }
    + o* w3 M  E  u) ?+ O  end;</P><>var6 \, ~9 M* u7 Y" }7 T
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);% E' U: I4 }/ c% {
    var! d. g4 [' ~0 }/ j
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    3 c) O) m! `2 Obegin% D! ~$ V/ j$ t9 l; y9 R3 Z" g
    adoqlinchang.Close ;0 K" B- Q' {% I- x5 ?
    adoqyinglinqu.Close ;, T6 }# Y! D# P9 |+ q
    adoqzuoyequ.Close ;
    1 {! J: p5 V2 M" m. Q% Wadoqlinban.Close ;" a& ]% N9 U+ q: l1 I: r+ u9 j! F
    adoqxiaoban.Close ;
    : p; q# h6 B9 H9 x; U! Badoqs.Close ;. N' P. v; N2 u; F
    adoqlinchang.SQL.Clear ;8 m  x0 n9 B, }/ m- o$ e. a
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');' D& M8 N- f9 w' q9 B
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;: `( t7 J/ r4 T7 o+ M0 d
    adoqlinchang.Prepared ;
    8 Q% O2 O% N  n- E) Y: K( Zadoqlinchang.Open ;
    * S/ Z5 K* X8 y' k( e* I/ F& wstrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );6 a8 V9 _# f$ ]6 Z8 X- y. G6 ]
    adoqyinglinqu.SQL.Clear ;
    ; D" k; J9 o# H! ]9 Y7 C* y& Cadoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');5 D8 g4 Y  y, I$ Z: w% W2 \
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;- o+ ^7 [3 [0 d" T: \' i( k
    adoqyinglinqu.Prepared ;
    1 v' z3 ]9 u! R: M' F+ Ladoqyinglinqu.Open ;
    9 y" |& `8 j# K% x5 k4 h  awhile not adoqyinglinqu.Eof# O( S% t% w0 l, S
    do7 O" ^; f5 A$ ^; f) r, O; d% x' ~
    begin
    8 y, @' D6 Z0 ^" U" u8 [  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );* g2 v) c' W5 _- u
      strcodeying:=strlinchang+'999'+stryinglinqu;
    " \, [6 J. o3 o  ADOQZuoYeQu.SQL.Clear;
    . ?1 W4 g0 M$ @) K' s3 E  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    + Z" v- g$ y# |7 m' q# o/ s  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    : w2 J% w9 d1 r+ ~0 H3 s, z  ADOQZuoYeQu.Prepared;+ C& x1 O7 h- V2 y1 `
      ADOQZuoYeQu.Open ;" O( f. @+ Q; m7 y) ~( Z" ?) J
      while not adoqzuoyequ.Eof, |$ m3 V) k6 X% k
      do
    4 d9 k' u% C8 }/ O/ G  begin
    5 t8 R, K) }: ^. t# t8 |    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    % A" j# U+ `/ e+ K& s9 X: h    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;5 Z- `* ~4 q' L5 o, V: E
        ADOQLinBan.SQL.Clear;7 j* ~" \% B" j$ X; }$ L
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');# X" J% `' m4 e( U: E! L
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    ! p; o* D4 Z4 z1 ?    ADOQLinBan.Prepared;0 j1 x/ H. ~+ z) K
        ADOQlinBan.Open;
    $ P( @: ~* v4 ?. I5 R2 T    while not adoqlinban.Eof
    & `% R! M% t/ z6 N! T: s3 o    do* T9 u7 l& ]; M; r8 j  I- T3 }4 Q
        begin# v) P4 a2 g% i' w- h+ o: b; `6 X
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    4 l1 \; T0 l) ?% D. X7 d/ O/ ^7 f      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;# d' i; a! k3 d% q# B1 Y& S% a/ F
          adoqxiaoban.SQL.Clear ;
    : C3 M3 F8 x# p6 u      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    ! C, B1 T7 X) S& F; w      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    ( U% h* v  P. z" B: S; D9 W      adoqxiaoban.Prepared ;: o2 E$ @, j- f6 E
          adoqxiaoban.Open ;% ]" t# G1 Z2 O! ~/ h2 U% |
            while not adoqxiaoban.Eof9 ]$ H0 N, h. F5 V$ a0 W7 f
            do1 c: @) X! r1 L( F
            begin
    $ ]) k& S, z7 }& M1 m2 _          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    " K: j6 W, `: _# ~$ U: o          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;0 M8 @* G6 _. @% z
              strcode:=strlinban+strxiaoban;) A$ d8 I6 [+ ]( v! e
              adoqs.SQL.Clear ;* `0 c/ @: o" M' t/ I( f9 }8 A7 ~
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    7 Y* j* m" N( r; n1 R1 }% V9 t          adoqs.Prepared ;
    5 u* s0 v. K6 L0 K; t: w4 O          try6 o8 |& {, r$ b# @# W" _
              adoqs.Open ;( o5 j! N( P) {
              adoqxiaoban.Next ;5 t4 @3 i' y5 c
              except
    1 L: V8 ]$ t* T0 j          showmessage('出错!');. J2 m6 Q& g7 R) G! I4 h
              exit;
    # q( Y5 R4 ]* g2 N* |) z4 s# T          end;5 T+ ?' z9 o! x7 q2 f5 o
            end;, b  ?- x& h) W/ E
            adoqlinban.Next ;
    9 V0 D% n4 T, |& _8 T7 Q7 j    end;. P) w% y. e$ @5 {, D
        adoqzuoyequ.Next;/ u8 P' B* c2 {
      end;7 U3 Z. i: k# K/ E3 s) Q2 P
        adoqyinglinqu.Next ;
    1 s" e% }7 h3 j+ R; bend;1 L6 m/ T  ~% H  }/ P9 S' x
      adoqlinchang.Close ;
    0 }& L+ W( M5 u% {5 u  adoqyinglinqu.Close ;. {9 X: {# }' `+ Y4 {: k
      adoqzuoyequ.Close ;# C1 s$ S% k! X$ {9 W- L; ?
      adoqlinban.Close ;7 h1 v  |# a6 ^+ [
      adoqxiaoban.Close ;
    , i. c+ S+ T$ ~; e! B  adoqs.Close ;7 S7 V; u5 P5 z3 |1 T" q. j3 O
    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);
      t+ w5 U+ T0 |9 ?var
      N" L& ^7 m% \2 s/ d- b# Z  str1,str2:string;
    $ [/ w# J! n( Q' Ibegin" I& ~( m3 D$ y
    str1:='001';/ j; I# j7 S$ ?7 g. m
    str2:='002';  Z$ q: B0 e- d
    adoquery1.Close ;
    6 E* _0 l) X9 D0 D7 |. Badoquery1.SQL.Clear ;
    - X, _& i" N# l/ P# q/ Yadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');, _' @; V# C: T$ i+ @& {
    adoquery1.Prepared ;
    ( G% e3 L; |% B* f0 N& ]: c; {% ladoquery1.ExecSQL ;
    5 ~4 u5 q4 a9 Z. K, [2 o3 lend;</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-20 00:43 , Processed in 0.524405 second(s), 95 queries .

    回顶部