QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12900|回复: 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.& Z( l4 [2 K) L  j6 ?
     
# T* E: \7 f2 a, N, x+ m     while not adoqxiaoban.Eof
5 g' U: R+ l* ^, r; }. v5 D     do4 {2 [( h! n$ n/ R5 a
     begin
8 s$ Z, H: k; [2 K     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
, J* Y+ V* W# m# M( k3 l% M9 c6 O     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
1 J6 A4 \/ {3 |7 B     strcode:=strlinban+strxiaoban;) P4 q% g' G1 {) r( r
     adoqs.SQL.Clear ;% I8 C  j0 {* ], C
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
% S3 }# i7 c( D, S     adoqs.Prepared ;
* U& R7 g, r/ N6 p     try
, D9 @. v8 D' b& h4 ~     adoqs.Open ;
# O) g  |) g) `7 a7 X: z1 b     adoqxiaoban.Next ;+ {% a) E& Q  k: ?! T( t
     except1 T5 d5 ^  j$ L/ c8 W- S4 H! Z. A
     showmessage(''出错!'');
6 P3 d/ a4 _# G& u1 v# c5 s0 j& }     exit;
5 U0 }& @  O+ |% W8 z: A/ y! a% ~# N     end;
! s* p0 C& k$ ~" v  w% M, I     end;
! X. D, `: y* q     adoqlinban.Next ;9 u: C2 }# m1 H
     
! i9 h+ x, I( v- y5 [     这是其中的一段代码 好像出错的就是在这 在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 ;
    3 ^) q. c6 ^0 L1 N8 \1 U你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses5 d& O" M6 o6 @, t) Q' ~4 |( X
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    & P4 L' H) U) O# W% A1 i1 B  Dialogs, StdCtrls, DB, ADODB;</P><>type  u; A; l0 X4 q  u" l/ w. t
      TForm1 = class(TForm)
    1 z( u4 E" m# F& y0 v" h# X    Edit1: TEdit;
    ! q$ r7 u( X+ Q4 ~1 [# l* [9 W    Button1: TButton;
    ' q5 P" q5 p: O8 j    ADOConnection1: TADOConnection;
    , ?/ }; N: t0 U3 d& s" d    ADOQlinchang: TADOQuery;
    ' A2 v* N: X( C) i2 {    ADOQyinglinqu: TADOQuery;1 r+ J. @' K( C- F# M
        ADOQzuoyequ: TADOQuery;( }9 B. p4 F, u7 k
        ADOQlinban: TADOQuery;( ?! R. l( w$ V; l+ y
        ADOQxiaoban: TADOQuery;8 c% F% S4 r7 T3 Y; C# n7 y2 I
        ADOQs: TADOQuery;
    & R5 Q8 x/ O2 \2 H9 B    procedure Button1Click(Sender: TObject);8 B: b: t& ]8 d* F9 H$ a+ k
      private
    $ u& k+ D1 ^2 v3 y) H    { Private declarations }
    ( V7 d7 s" N% k* F. q6 y  public
    6 Q) U- `3 z  P0 f/ X    { Public declarations }
    ! U7 [# J3 x0 h. ?  end;</P><>var
    1 N* w7 q3 @5 Z+ A  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);* t% Y8 o- l9 Q2 f5 E1 x
    var, v6 n9 D; ^7 a5 C
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    4 L( m' k5 |! b( bbegin( A4 E4 E! P5 x, U. n# R+ o3 `; ]. _* }
    adoqlinchang.Close ;
    6 Y+ d. {( u, t5 Iadoqyinglinqu.Close ;' h: ^7 y0 B9 ^" {
    adoqzuoyequ.Close ;# v6 ?  l, p3 p  n; h7 l$ ~
    adoqlinban.Close ;! W4 B' M7 ]: H& R) [& ]
    adoqxiaoban.Close ;
    2 B6 l1 W, E0 Y$ N! Madoqs.Close ;& w! H! w5 r# V1 K
    adoqlinchang.SQL.Clear ;
    4 n( y' ?  M# E" {' e3 o: fadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    6 z9 X9 x+ G. _. sadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    & m; |9 `, i/ v* ]% y- t. Madoqlinchang.Prepared ;$ O2 D- _  Q1 B
    adoqlinchang.Open ;/ L3 I# V8 C* C* G
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    & ~# G' c* a% L* z0 `- p! aadoqyinglinqu.SQL.Clear ;
    8 v0 s! w+ x. @; ?0 j& badoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    5 |4 R0 B6 T$ j. N: u% xadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    * w  j& Y' ]4 l% Gadoqyinglinqu.Prepared ;
    1 z$ G* ^' p+ o! Z* N- p( q; Badoqyinglinqu.Open ;4 v% t5 Z8 `6 ~2 c* ^
    while not adoqyinglinqu.Eof; Z4 Q' Z  Z4 a3 F/ Z2 c# N) c
    do$ i; `: P- x( j  ]) k, W
    begin; C5 L, {3 i& f4 ^% X  W3 D! m
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );. s. n' F) S- k! \$ q% B9 @( j" Z' Z
      strcodeying:=strlinchang+'999'+stryinglinqu;  g, z. W. }* {0 x
      ADOQZuoYeQu.SQL.Clear;- P% S( u; Y* ?* j* Z
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    1 G1 j) }: ^8 p  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    $ n( _9 \& `4 X% F9 ^- a0 {3 K  ADOQZuoYeQu.Prepared;1 H/ H4 }) b8 ]5 e% T) V6 F# I6 Q
      ADOQZuoYeQu.Open ;7 g. b3 j0 G$ \2 ^; D  k% K  F
      while not adoqzuoyequ.Eof" y. Y9 M. B4 m4 R/ @1 G
      do% N. k* V1 ?7 i( u3 d
      begin
    ) t' U: t! H* n  t! _1 }    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    2 ^: `! {& Z9 Z  [4 h    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    " Y& N& S, b! m0 P. ]! C    ADOQLinBan.SQL.Clear;
    8 {$ p. l8 ]# n& Q) ~    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
      \( K2 F6 G8 ~    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    7 I  f& l; j0 w3 L  y; n4 u% g    ADOQLinBan.Prepared;8 j" H, ]. Z% D! _. Z& W
        ADOQlinBan.Open;
    ' i5 n5 J9 e. [2 c0 `* F( s    while not adoqlinban.Eof
    ; H. L8 E: k' f9 J7 ]* S    do
    & x3 J* z* }  h" l3 n    begin
    : t8 S; t. A4 `- P6 L      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    * l8 [6 I+ J1 m' B      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    8 t! ]) w, U4 ?% I: m/ V. u: C      adoqxiaoban.SQL.Clear ;
    5 f! \7 F* A$ c* Y( S* `$ x2 a; S      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    ( ]6 t) d0 \& c: P9 C3 L      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;1 a- P# S/ }" e# J/ {' x) }* U
          adoqxiaoban.Prepared ;' l0 @" C( g, |1 O1 T
          adoqxiaoban.Open ;; u# M, `6 K% k# s
            while not adoqxiaoban.Eof" R3 n; Y9 p' j4 d$ t4 R
            do/ k! O  [% d& m% a  K, }% b2 Y
            begin0 k3 c8 H+ N5 F7 U3 [
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    0 ], r/ |% [& w% W( a          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    ) p# U9 F- {9 `8 y! @* ~6 c) T8 Q          strcode:=strlinban+strxiaoban;, K. q2 h) N4 j" H" q9 m
              adoqs.SQL.Clear ;
    0 z! |) w1 z% M          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');3 e! z7 y5 f; v5 A
              adoqs.Prepared ;8 R* v5 D- N* x
              try  ~8 G  X+ Y! J9 P! i
              adoqs.Open ;) d7 N/ m/ g4 g/ p# T
              adoqxiaoban.Next ;0 \. [9 y7 K1 ?9 A" m8 U* z+ @
              except4 _! f6 l  q# ?# ?6 f
              showmessage('出错!');
    ! d- f# d$ H8 K0 K          exit;  y2 j% m! m4 _  v, F* l
              end;8 V7 E- g/ C. Y% j
            end;
    6 f: J" ^4 Z1 U& r        adoqlinban.Next ;
    0 W( k9 h% ?' n* d+ C- v    end;
    / l- L2 {2 h" W* \4 e( D5 I3 W& r; n    adoqzuoyequ.Next;
    ) T- }4 H' O$ o$ U  end;1 P+ [0 b0 ~( ~1 ~
        adoqyinglinqu.Next ;% D! V0 t- l9 D3 _( j1 p* g
    end;, u( t4 |& D; H7 Q! W8 i
      adoqlinchang.Close ;  [. F" C8 O& o/ o/ G
      adoqyinglinqu.Close ;7 k- z7 g! H/ l
      adoqzuoyequ.Close ;
    / w2 ?. u+ f8 |4 G) t* y  adoqlinban.Close ;
    + s7 s4 g* v- P6 A# N9 x4 |  adoqxiaoban.Close ;
    2 {9 M, ^6 ^8 [" @. O# T  adoqs.Close ;% y& c. y9 V, d" 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);( x# E$ I0 A4 ?3 X8 |
    var
    ( }1 U% [1 D6 |; j7 w7 b1 k  str1,str2:string;" R5 l- Y( Q+ G
    begin
    , u; Q3 ~! |  U6 Q0 I& s4 `str1:='001';
    " {% u5 Q( U1 {& Bstr2:='002';
    # f, L6 }4 b5 O* X1 Aadoquery1.Close ;
    0 F# }! U" Q3 \& F0 madoquery1.SQL.Clear ;& s4 R% {" p5 V) c) T0 g. P
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    6 Q+ a- s( @! E2 O  ladoquery1.Prepared ;7 M. y/ F# B- V1 ]5 a* i
    adoquery1.ExecSQL ;  P7 _$ c# [% n8 K' @
    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-4-20 00:25 , Processed in 0.490458 second(s), 96 queries .

    回顶部