QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12894|回复: 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.
7 j8 A+ j; a" V6 ~( u/ e: V  i     
8 W% p" L: r# u. B+ G     while not adoqxiaoban.Eof
9 p! A8 \: h: B8 X8 o. u     do* u4 S; X0 l" B% C  C+ o
     begin
6 ?, P; D: G/ ]5 R+ M     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );6 V7 P: j0 {  J& y8 |+ P7 x3 B
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
7 }3 [; G% Z# v8 }9 u& k     strcode:=strlinban+strxiaoban;
9 m' V2 c- ?6 ~8 r1 Y     adoqs.SQL.Clear ;
% {+ m( N: J& s: Z     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
. O( U/ J/ A, z1 D     adoqs.Prepared ;
- h7 N% b' [. h4 n- X& _* V( b     try
, _0 s; y" k0 p) ?/ b     adoqs.Open ;) _/ T1 v2 H; ?8 ]9 S! y- k
     adoqxiaoban.Next ;
% k' y; y  S6 q0 z     except
1 E1 j; O+ g) ~, K0 E+ m* H' X6 M. M     showmessage(''出错!'');9 G, F% R! `- C8 [1 x0 X4 n
     exit;3 G+ b4 ~! G4 e( ]* |6 |, K
     end;1 R8 n2 H4 A& m7 y: E
     end;
4 R/ _. I8 W" x) T9 M     adoqlinban.Next ;
2 J* @: I8 e, Z6 P. O. |     
  @4 j6 b) Y2 a: Y# N* r4 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 ;
    " B+ |. @  P7 u; X( Q4 {+ e你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses9 l6 V. [# u+ Z# L! k: [( ^& _
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,# L6 i7 q# N2 l# S" s' O4 J
      Dialogs, StdCtrls, DB, ADODB;</P><>type
    ' u( M3 m2 o; G0 {1 P; W4 W, h' Z6 ]  TForm1 = class(TForm)
    2 h) a3 A- s3 Z0 n0 G    Edit1: TEdit;
    3 L2 @2 z( G/ q3 O  _% u5 Z: M    Button1: TButton;
    : S( J4 c! Q0 Q9 B* ^6 E4 i. M    ADOConnection1: TADOConnection;
    + r; M' H# l7 `6 ^) A$ K    ADOQlinchang: TADOQuery;- J/ j* A/ [+ ?2 T0 M5 k
        ADOQyinglinqu: TADOQuery;3 G: z$ s, x  b/ h. f
        ADOQzuoyequ: TADOQuery;
    $ r9 I# X* }, I( \8 Q- P! A# d    ADOQlinban: TADOQuery;
    # w- I$ w5 n+ |9 S% F7 `0 O    ADOQxiaoban: TADOQuery;
    # j1 ]: C( n$ ?! p7 G    ADOQs: TADOQuery;
    ( O% u+ X2 s* d4 J& r    procedure Button1Click(Sender: TObject);
    ! p- b1 f2 d- w  private
    - G, k) B' C8 ?1 @# y    { Private declarations }
    2 O' J0 e! o3 F  public; N; o: N: }# b/ X
        { Public declarations }0 F! r8 e6 o7 I9 t! g) a
      end;</P><>var4 g) t" y; `! y1 n) i& \  f
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);9 b% B2 i& o# ]3 ~5 t6 p
    var2 Q/ ~& H6 V* Q& w( W) a
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;$ b. s8 K# Z5 m4 P2 V, E( G( t
    begin
    / T' P  @* S' i/ N$ t5 nadoqlinchang.Close ;
    - [; H/ i0 q9 |8 x. }/ b2 [adoqyinglinqu.Close ;
    0 O9 W# ?( G5 ~" M9 s- T" T+ T2 r; Iadoqzuoyequ.Close ;
    # a- m+ `4 F5 zadoqlinban.Close ;# H  D* R& `, v1 s0 q
    adoqxiaoban.Close ;1 F) S0 S, d, x
    adoqs.Close ;4 k; l1 c, J) i; u( L3 E0 q
    adoqlinchang.SQL.Clear ;
      ]- e4 {: e0 Y- yadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');( h+ K1 O! z$ W" N
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    7 c) R# F+ i9 X2 hadoqlinchang.Prepared ;# T, {/ }" ?! _* ?- k
    adoqlinchang.Open ;6 D8 |" {/ V- O6 {( V4 M" Y# X1 j
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );; D( t9 k5 g  S; i
    adoqyinglinqu.SQL.Clear ;4 ]4 V3 x" n6 z- |1 G
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    ( C; L9 L1 g" @+ B: {1 e% Nadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;5 L& s# b8 L3 f9 M2 h: t! ^
    adoqyinglinqu.Prepared ;6 o8 y+ i0 C5 @  H2 H3 C" U$ e
    adoqyinglinqu.Open ;& ~7 @' ^% W9 t. B8 D- Y
    while not adoqyinglinqu.Eof
    ) A2 r* ~. T+ w$ [$ j9 k  y; }, Ndo
    6 i, K4 e( z) @' w7 j+ D  l0 Zbegin
    * n9 v1 H; c( j6 c; M, O% k- Y6 v1 `. e6 ]  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    ( f) c% @& I/ C) r. a7 c  strcodeying:=strlinchang+'999'+stryinglinqu;4 M) k0 v3 d; m! ?( }% v
      ADOQZuoYeQu.SQL.Clear;
    " M' Y( t1 V! [5 ^( I7 n! m& w  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    2 G0 P- a* J( p5 v& n, c  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    6 X( w  ~+ B1 Q* I2 F  ADOQZuoYeQu.Prepared;
    4 F) b4 O& B' m3 o1 y) g1 J2 E: {. L5 I  ADOQZuoYeQu.Open ;
    4 g( Z9 n9 k; N7 N  x  while not adoqzuoyequ.Eof2 F) {7 Z* b/ C8 L6 u- T
      do+ C; i) w) H/ y8 b/ B/ a, ~7 U
      begin
    # H0 H3 q0 v, T3 w) ?    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码0 D4 P2 r; Q, d( ]
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;/ V$ }3 e2 j, n7 P% n
        ADOQLinBan.SQL.Clear;
    2 h' {0 ~9 {# @: F    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');% m) m) c7 Y5 a. r1 |2 M7 [
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    : t2 _( n3 S( G6 l/ n2 V    ADOQLinBan.Prepared;
    . b; {: m6 |1 D. z    ADOQlinBan.Open;  d9 s, ^- S# U+ a8 x* S
        while not adoqlinban.Eof
    ! b- o% u2 g  F' a2 ~1 ~    do& N6 ~. _7 N! j* {+ T4 ~
        begin9 [! Z+ E: s1 d; Q1 f9 d6 x: \
          strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    * k' p& G6 o  {3 d      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;6 W% W* E8 m2 @0 ?3 z
          adoqxiaoban.SQL.Clear ;
    8 w6 W) l/ C' ~( ~4 m& J' g      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');( O' e6 q  B, c
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;, K3 x3 r8 |4 f5 K
          adoqxiaoban.Prepared ;
    , O5 w' G' t- O      adoqxiaoban.Open ;5 Q: o/ f) d: C' @1 G7 g% c
            while not adoqxiaoban.Eof) q3 Z( t0 @  n1 u9 v! H
            do
    # K1 L7 Z0 d/ _' G8 M        begin1 H# b$ H  `% D
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );' o( k1 c7 F/ V+ @3 t, s: B
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    7 h+ ]9 d) u/ i8 c, `# u/ ~% \6 h          strcode:=strlinban+strxiaoban;8 Y7 q( C* {& W' N& f" O: Y2 C
              adoqs.SQL.Clear ;/ ?5 }/ y( T$ q8 T4 j
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
      T, j8 m# r8 ?: a# S! q          adoqs.Prepared ;
    & [! P! v: t/ o/ G/ @) N2 L          try' ^  M. r8 D/ E6 `. I
              adoqs.Open ;
    & R1 Z/ \' n* i) \* f! ]          adoqxiaoban.Next ;
    - _! v5 C3 d  a. s; a9 l          except
    ! S& X! E  R7 a! V( O5 Y6 O; q          showmessage('出错!');
    ( h; J  F2 w/ j2 N' i, w0 r          exit;
    0 J! E" q& k: A9 S1 Z9 m; @) v          end;
    6 ]; M/ h9 @) t" V$ L) E        end;
    & J0 \; [7 C6 L0 m  L' k" f        adoqlinban.Next ;# j4 o- f& D5 T( f" W$ p
        end;
    / F, l* l4 [8 }8 ?2 s% \    adoqzuoyequ.Next;4 e, t. l# n: F. C4 z. `( Y, Q0 L
      end;
    9 W$ [/ i1 L' ]7 O    adoqyinglinqu.Next ;
    9 q$ v/ e) K' \* Gend;. T0 b" O+ ~4 G$ t* R; T4 b
      adoqlinchang.Close ;& i: z, t- `% H- r; J
      adoqyinglinqu.Close ;. r' G7 |" w. W) u
      adoqzuoyequ.Close ;
    + G0 B/ \, H. V  adoqlinban.Close ;
    $ Q( E2 h8 s( Q# X  adoqxiaoban.Close ;" e* i+ V; q2 ]( X5 K
      adoqs.Close ;
    3 y( G$ s/ N' ~, k4 j# z3 ]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);
    4 X+ P/ V' u) o; cvar  n1 M- \+ x& o; p1 b
      str1,str2:string;
    7 V3 P$ D# |$ U; b* e/ C! lbegin
    - o* k% e4 e, ]1 i6 sstr1:='001';
    + I5 O* }# @: ~2 astr2:='002';
    % G; y: X& K, z. r+ Qadoquery1.Close ;) y* }3 V* ]2 U" [7 G1 d
    adoquery1.SQL.Clear ;
    ' x$ z$ z( h) A; L: q- Qadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    ; ^$ Z) j% P% N9 }) N& A* b( I3 cadoquery1.Prepared ;
    2 o4 `: |: E+ D5 Dadoquery1.ExecSQL ;# o- f' t# l9 R, j( c+ N4 B) h
    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-18 11:40 , Processed in 0.497183 second(s), 97 queries .

    回顶部