QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13194|回复: 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.) g$ r$ A% M* K! O" ^. ?  Z( R! O2 Q# f
     
4 Z0 x" Y8 n0 F, O3 }     while not adoqxiaoban.Eof' o' H) A5 N, r
     do6 ^, d% N! p, P
     begin& B( U2 y  s$ B5 i; w( S% O
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );7 l9 j2 ?4 [# F) A& N; B9 W
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;- R. T0 A8 Z$ r& _5 S% x
     strcode:=strlinban+strxiaoban;6 H( Q4 S7 e4 g1 ^, a" X
     adoqs.SQL.Clear ;
( q0 @' x4 S# }+ z( D7 G  P9 g, k' r8 e     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');+ R7 e% j8 A6 w
     adoqs.Prepared ;8 w6 G3 a) W" P
     try
* M' T% d( M2 `! U- x1 Z0 w     adoqs.Open ;
, F9 f+ l- c$ A, H8 A: H' ?2 n     adoqxiaoban.Next ;
# H+ t3 y3 d+ _     except8 s1 r: Z3 q& s/ C; Q- N: u+ O
     showmessage(''出错!'');, C9 {0 E! }6 |/ `  z6 y1 N0 w
     exit;
0 L% M, k, q- K5 a- v: H! w     end;
8 m- m$ f0 _$ v5 ^* M: o4 F) Z     end;
/ e" P+ c/ b' Q, H" X4 t7 d! o8 V     adoqlinban.Next ;! K* A4 @* Z+ j: }0 t
     
, ~3 j6 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 ;
    2 s6 @- K& i( H) p. \你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses( v) T7 ]. H3 B$ U& m
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,& C; |8 V+ g4 v9 [( e
      Dialogs, StdCtrls, DB, ADODB;</P><>type
    # \) M6 d/ e6 O  TForm1 = class(TForm)
    6 |, g- O7 P: W0 r- \- b; S    Edit1: TEdit;
    5 P5 [6 Y# f5 i  F# s' N7 J& d    Button1: TButton;
    & m; O8 V) m) A0 C$ }    ADOConnection1: TADOConnection;
    ' f" O4 ^/ k6 w. {    ADOQlinchang: TADOQuery;
    * F7 C+ c; J# {. T' E2 E( S- y    ADOQyinglinqu: TADOQuery;
    4 e! b* i- T3 `2 F' A% D0 n    ADOQzuoyequ: TADOQuery;
    ( C4 Q4 _0 t7 L- @1 F    ADOQlinban: TADOQuery;
    ; ?2 T" E( Z8 c" t6 ^# W    ADOQxiaoban: TADOQuery;0 c1 Z& X4 K* f( r6 Z
        ADOQs: TADOQuery;! @( i$ A7 P# h/ \+ `/ I( P
        procedure Button1Click(Sender: TObject);
    & \( p- x' V: R" e. z% I  private
      i9 S9 p% D% \: z" W: H    { Private declarations }
    ! R6 U( _  k" E1 f  public
    + _- Y% w/ p2 A! o6 U3 V* [    { Public declarations }) _7 o' }8 d% O
      end;</P><>var
    ! x- x- X: h6 h  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);; V% e) j' r1 `, Q( h$ q
    var0 D/ n- h7 v% C
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;: f/ a9 b( ~* t& n7 y" Z# p
    begin
    5 G, j' U* A8 E0 F/ Dadoqlinchang.Close ;
    * j1 V) C2 m2 H2 ]6 Badoqyinglinqu.Close ;" T* Y( t# ?/ b/ D# ]6 A1 A# _
    adoqzuoyequ.Close ;
    7 L2 `# }8 V' n+ s) ladoqlinban.Close ;  C5 w0 J( [- Y/ ~$ r% C* e# A! z
    adoqxiaoban.Close ;
    . Z& E/ I3 x2 _; tadoqs.Close ;
    * K& |5 r- d2 r7 ^* Xadoqlinchang.SQL.Clear ;& w' p5 A6 p3 F4 J8 U: `
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    . _- o3 Z4 Q. o/ I. O, Uadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;0 ]  x! z. m* ]8 n
    adoqlinchang.Prepared ;
    ( t2 R. B# @2 }3 ^adoqlinchang.Open ;
    : F) p6 Y: a. b6 g$ @strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );1 O$ p/ @: S/ {& m1 P) w0 [4 d
    adoqyinglinqu.SQL.Clear ;, H& i& Y+ `6 K4 Y6 a
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    - T8 P  t" _9 m1 t$ v6 Q7 N9 x* }) zadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;, W) R* ?% {1 E( o# K! C
    adoqyinglinqu.Prepared ;0 Y9 l5 R" _5 V4 k
    adoqyinglinqu.Open ;
    & F$ G, H2 `+ d/ O6 _3 k7 Mwhile not adoqyinglinqu.Eof3 ]& `# y- ~* w- k2 x
    do& b- o, m( l7 S# w8 w8 |
    begin0 P5 Y7 U3 Q  J$ q, _. n) g8 {
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );8 V' E7 S% d9 E
      strcodeying:=strlinchang+'999'+stryinglinqu;  K& l% G3 d$ t* M: \- ~8 o
      ADOQZuoYeQu.SQL.Clear;
    / _: D" \  Q! |5 Q! c$ w  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');6 o; v: w3 T2 W: Y9 }) e/ x3 g
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    3 \3 D" e; w  t& d  }0 r- Q  ADOQZuoYeQu.Prepared;
    , K- ~5 ^- n+ v' R6 a, e: l  ADOQZuoYeQu.Open ;
    + S$ o2 _- s, g# I  while not adoqzuoyequ.Eof
    + _4 G! R$ N& S: G  do
    9 Y$ _4 E1 ^/ f6 m9 o  B" b  begin/ |" J* q" r. T" t' U# L
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码/ i2 v! v8 Q1 L% X. U* `
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;& g# U2 L$ O+ y: i$ E& w
        ADOQLinBan.SQL.Clear;1 w! z5 r, X, r9 f! B
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');9 G7 m2 ^& v" M/ a, H% ?# Q
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    ; [% m/ C* t) D/ A2 L8 e    ADOQLinBan.Prepared;
    ( k0 }# e$ s5 Z- |9 c7 ^; ~* l+ r    ADOQlinBan.Open;
    5 N& h$ B7 e, Z( M1 u    while not adoqlinban.Eof
    + s) R9 s2 w1 \, {/ n    do$ E3 l  U: w- O/ d) \0 ~3 W
        begin
    , M2 s* _% U3 t6 t- C2 B      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );5 t/ M: G% |! O& L6 ?1 H
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;" d; P& K: j) o( E6 g
          adoqxiaoban.SQL.Clear ;
    + j& P7 ~( L& F7 a/ ?& v/ W      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    0 A* D2 r+ W7 S      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    . l' p6 G4 f7 V) _& ]      adoqxiaoban.Prepared ;
    6 k, \: T1 Z" f% w      adoqxiaoban.Open ;. q# ?+ Q! t, W1 r( @$ s" B$ L+ A, n% u
            while not adoqxiaoban.Eof0 s% v5 X% g, K0 x5 ?% I" D
            do
    % `; n, l+ [' u6 \- E        begin& |+ e! h4 t$ l6 E  {5 v$ R. s
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );2 s* s/ U- x( y( J
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    5 S1 D) E; Z, ?. b, P& @4 o! h          strcode:=strlinban+strxiaoban;/ k/ }5 Q8 v$ e+ {- L: {
              adoqs.SQL.Clear ;
    ( m+ \" Q) q7 g# v+ l& D          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    3 u) W1 R1 _& i9 m- c/ `          adoqs.Prepared ;0 }  {. t/ C/ `/ J) n
              try
    4 r- Y- _' t2 U0 o          adoqs.Open ;
    - n+ y+ [! l2 y7 E7 A" j5 C          adoqxiaoban.Next ;* T. D- ?( e8 @6 r" k+ M# Z
              except+ U5 ?$ Y4 m+ k, H. T
              showmessage('出错!');
    ! F% Y; f. o+ F7 K: k4 r4 D          exit;
    ' S/ A. N7 \8 L# Y& ~          end;
    ! w9 S; x8 z; L/ k; P& f. m, L9 r* Q        end;
    / n" X/ j) H/ O) g        adoqlinban.Next ;! J, B! ]3 S, j/ N+ W) u
        end;2 r8 E( E$ f7 i4 l! n' r% `; ^6 q
        adoqzuoyequ.Next;! [5 ^8 C+ w; U9 y6 Q9 B
      end;
    " e* [# t# l  C6 H- ~4 d: g; l    adoqyinglinqu.Next ;9 m1 I- o3 X/ q# `; i
    end;# F$ V( ?( s: U; v# M& D; l7 f
      adoqlinchang.Close ;
    : t) F1 Z, H# C1 A4 m, b  adoqyinglinqu.Close ;% `& E6 ~+ a+ V' y6 ^
      adoqzuoyequ.Close ;* f9 N- X# F+ C; |
      adoqlinban.Close ;2 g. Z8 B$ g3 p% \, j% q# N
      adoqxiaoban.Close ;( L! L* b% h, {( [. b% h, Q
      adoqs.Close ;& o" E! k6 p4 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);$ Y  O* m' e& q4 @0 l$ f2 q3 `
    var
    4 r* ], c, O1 P- B" h# ?9 u) F' f  str1,str2:string;* |+ }. s  S. i* q
    begin2 o* X) c+ T1 Y7 M6 k7 S: C" k
    str1:='001';
    % Q1 G' _& C3 R  v4 Astr2:='002';2 f7 v% ~7 R* T, H/ J/ _' i7 n& U; \
    adoquery1.Close ;
    3 l- I1 Y# M& [, D1 nadoquery1.SQL.Clear ;: y7 F9 _+ _1 f8 M
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');! I, B' u& [( ]1 S+ h
    adoquery1.Prepared ;
    . Y% l$ h- t- O3 ~7 O6 P3 b$ U+ c8 cadoquery1.ExecSQL ;- C3 R$ y- `) `
    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-9-2 20:01 , Processed in 0.469708 second(s), 96 queries .

    回顶部