QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13047|回复: 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." L6 |1 T9 W8 B, a; q
       k. \- x" C. a- c7 w' u4 P2 O
     while not adoqxiaoban.Eof( I5 ^" B0 x6 o$ A( y9 ^; f1 a2 d
     do
7 W# D* z% I' V3 O# u     begin6 a1 n7 `7 g6 O3 y6 i; Z
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
) G! l, Y& u4 K5 x  Q     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
8 M; h  C% t% L. `5 {     strcode:=strlinban+strxiaoban;
. z7 j7 D/ P/ u     adoqs.SQL.Clear ;# D" _* X7 l5 i! x
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
) d- }  q+ h9 a$ M: M' R     adoqs.Prepared ;
- v* H7 U2 M0 p6 R: \9 I     try* z. \+ o7 I# V1 `
     adoqs.Open ;8 m5 n0 ^5 K) A2 G8 {
     adoqxiaoban.Next ;, A3 x% f; T" i! @: U  ?& O
     except
" Z& r' Q4 A; f+ w3 t% g7 h+ {5 n     showmessage(''出错!'');+ X; Q. J# H4 W* l. n2 ]
     exit;
% k$ @" w1 V' b  h  a5 x     end;# n* c  W7 U; L) C
     end;
$ W3 Y5 m% d) V* v3 F     adoqlinban.Next ;; y5 {, [1 T9 U$ @' i
     . q, F/ m$ G& Z' u& t: ]
     这是其中的一段代码 好像出错的就是在这 在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 ;% k4 _  H" c6 C* {
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses( }' I2 Z/ u' ~6 ]
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    9 C2 W2 u5 @2 B5 O  Dialogs, StdCtrls, DB, ADODB;</P><>type
    / _* Z4 u7 K3 B  TForm1 = class(TForm)( y  E+ ?7 i) F  O5 b7 \
        Edit1: TEdit;/ Q% H+ B0 h5 ~
        Button1: TButton;
    ; D# G6 O, G# ]0 X' y4 J9 Q    ADOConnection1: TADOConnection;
    4 j) d, T, h* l    ADOQlinchang: TADOQuery;
    . |0 B- f9 k' U0 O1 a    ADOQyinglinqu: TADOQuery;3 k- d8 v# T' t5 H  y
        ADOQzuoyequ: TADOQuery;
    ! T+ ~' J: W& {    ADOQlinban: TADOQuery;
    . a: j3 \0 b& D2 w; Z1 g; H    ADOQxiaoban: TADOQuery;
    5 Z* u2 X' Z) H; p' J    ADOQs: TADOQuery;( `' r% ]% |7 b
        procedure Button1Click(Sender: TObject);
    ; l/ }: I! S% k/ x  private% J* L2 P' y4 L8 J( _( h; \' Q
        { Private declarations }/ h# D: j7 A/ z7 v9 T0 U
      public
    - r' n$ A0 Z0 g' d7 u$ X    { Public declarations }
    . L2 Y% u0 W5 v/ ^$ Q8 A, \  end;</P><>var* E/ s0 e7 j$ l2 D& E& b
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    0 u8 R, h" D( d" I9 }) K" Rvar/ S) H3 o  d) C4 S6 G
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;- O! _9 Z4 ~' S! h" v9 G$ H- o
    begin* H7 I% X) v7 Q0 F
    adoqlinchang.Close ;% I7 w4 Y4 W7 g. X* N
    adoqyinglinqu.Close ;9 A3 l& }- N6 M3 t0 P
    adoqzuoyequ.Close ;
    0 k3 k5 K% \; ~( z: e% tadoqlinban.Close ;
    5 Y6 N/ I3 F4 ^8 B/ jadoqxiaoban.Close ;6 V' g3 J3 }' @1 b
    adoqs.Close ;6 `& _1 ]; \/ ~/ b3 V/ |
    adoqlinchang.SQL.Clear ;
    # |8 |& z1 O6 E/ `9 C2 U& a+ cadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    0 ~: ?, s+ X  }% n* @9 G% ]adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;" p$ A" |2 K2 s' }' [+ }# u
    adoqlinchang.Prepared ;
    8 X1 a2 k# I2 l6 x) [" \adoqlinchang.Open ;7 Y( Z4 l; j, R$ J' c$ Q
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );0 m, v0 P- F+ e$ T: U  D
    adoqyinglinqu.SQL.Clear ;/ L+ y4 O5 Q4 X5 q0 z
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    ) u7 u" r) b5 I) `% [- O% ?% eadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;5 `1 ^* B& c4 ?; D4 E7 ?3 X( _
    adoqyinglinqu.Prepared ;
    8 E: P& i3 m5 Y2 H9 Q% _$ vadoqyinglinqu.Open ;6 A. M- g# J& |2 h1 _
    while not adoqyinglinqu.Eof) |6 A! t! }" A! i  v
    do
    ; y3 ~! y' K% {. P" O$ Z( i  v" Vbegin; ~+ C3 }5 q$ g9 r7 o6 r' Y
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );/ ^$ j9 n! b9 z9 R% L2 J+ Q+ d+ D
      strcodeying:=strlinchang+'999'+stryinglinqu;2 P7 u" A5 {- j, |
      ADOQZuoYeQu.SQL.Clear;4 Z6 G9 ^! d+ h- r4 Q
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    6 n! D+ I# Y4 \2 A  g8 }  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    / W6 I) M9 F* C  ADOQZuoYeQu.Prepared;" B* x$ f3 J: W! B6 o6 F
      ADOQZuoYeQu.Open ;
    ) D" H5 J8 `& P+ ^1 k% d2 W+ g0 Q" I  while not adoqzuoyequ.Eof( Y3 R+ b; i1 e- C" v9 R
      do
    / |# A6 A$ i+ s, |% W  begin& X0 v: j; b4 h# M8 A1 t8 L# ]0 ^
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    ) F& f5 R- k9 m$ S5 i$ P; m    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    & F9 G- s1 j* a. F8 n- G! K" R    ADOQLinBan.SQL.Clear;
    % _( g" {" _& \    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');& j$ V* p! g4 @7 }" X
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    4 a" B. P. A5 D$ {4 W" ]    ADOQLinBan.Prepared;$ d+ F/ i& A& U+ O2 C3 X6 W
        ADOQlinBan.Open;
    1 ], ~. F& U9 ~: X$ X    while not adoqlinban.Eof
    - m' Q2 b. j; P4 H7 [    do, g- W$ E' x7 b! k1 \6 i
        begin# H5 C* I6 u; h. N, h2 y
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );6 S9 S9 \; c  T: w6 H& c  w
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    ; k$ e. c& f1 S      adoqxiaoban.SQL.Clear ;
    ( u0 i% u2 K5 x; ?5 p0 [      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    ) z- `% B7 r0 n, D  u/ U      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;8 G( C; i* G" }2 ?+ K3 K' S+ N
          adoqxiaoban.Prepared ;
      I$ U. w% w1 a- i" c  L      adoqxiaoban.Open ;
    % r  ?" s$ a! L6 h        while not adoqxiaoban.Eof4 Z0 c4 F+ G8 A' i$ \
            do+ u. x7 k/ `" i) H* u0 C. v
            begin2 w/ T% a) r8 K
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );/ o7 u+ x- @* O8 X0 A
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    0 r) B; u: R  x5 Z          strcode:=strlinban+strxiaoban;7 c1 K% a2 R. Y) o1 x
              adoqs.SQL.Clear ;
    9 Y6 H" P" u! }) O8 D4 [# n          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');) J/ T- E7 ?5 L* b
              adoqs.Prepared ;
    " N. v* o' b8 H  a6 |8 U          try9 @  d8 m% d/ Y6 o) Q# W
              adoqs.Open ;: [. ]4 j+ O- Q; N$ D
              adoqxiaoban.Next ;) Y8 x8 v7 r  H3 H/ @& F
              except  k) h) n  Y( f, z; H; b
              showmessage('出错!');0 N/ A: a+ I" I+ |" [8 o- F
              exit;
    - c: M* D! m0 `* C0 N! ^          end;
    ' J" n) o5 v- L* O) M- r9 C* `        end;( F0 e9 U) v% `: R+ \
            adoqlinban.Next ;
    * x& D) @# g* S' J+ h4 U    end;  {) v' h* G( h
        adoqzuoyequ.Next;
    4 Y" ]* b* r: ^6 O' I5 @  end;7 ?+ J$ A- D) |  M( H  a: Y) N
        adoqyinglinqu.Next ;
    " ]" d! H- H  y- d: y* a+ Oend;
    * a8 T2 R! _" b/ \9 S, `  E$ w  adoqlinchang.Close ;
    & _6 V, D, B( r8 ], T  adoqyinglinqu.Close ;" n& i& P2 u7 S8 |
      adoqzuoyequ.Close ;) Y8 j5 }1 ^, M3 w5 n# ]
      adoqlinban.Close ;' R) s9 M* V6 l9 G3 f7 o4 M4 @
      adoqxiaoban.Close ;
    5 p! P9 @% b3 p2 k9 \$ @2 C1 M. ^5 c  adoqs.Close ;8 ]& {0 C3 J  Z& j
    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);$ F3 V  F$ E+ e
    var4 `0 i& a2 P7 Z; X$ K
      str1,str2:string;
    8 Z* I: D1 c# t& n3 n" R' {begin
    + X" i2 Y& L! e( \6 Mstr1:='001';
    , H4 O! L0 Q, S8 @% k  [str2:='002';
    + t& |2 O& v( m& ^2 V* P! @% Kadoquery1.Close ;
    , T; H# {3 ]& @adoquery1.SQL.Clear ;- F* ], R" Y$ d) H& {. Q; t3 Y' X9 m$ s
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    9 s9 J% q; Y. Y# @; c3 Wadoquery1.Prepared ;
    + @6 F( ~" {, [. tadoquery1.ExecSQL ;, o% F0 r% X4 `3 }: g, T2 d, M
    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-17 19:22 , Processed in 0.360901 second(s), 96 queries .

    回顶部