QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13186|回复: 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.1 y3 m# M! H1 `2 t5 T
     
" M% D4 F& x7 T7 H: f% G2 O6 b1 L     while not adoqxiaoban.Eof/ \7 l0 h3 Z. I$ _1 N  n) D" l# y
     do2 e; ]! N& c$ N. t! \
     begin! w1 k* a8 ^& R6 v* e8 d
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );/ @" F# S8 `; ?6 P
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;" l- q: H! }* c! K( K
     strcode:=strlinban+strxiaoban;
' B4 S2 w2 ~% C     adoqs.SQL.Clear ;2 n8 a3 T6 ?+ O$ t2 P; J
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');3 k  O$ p. i4 P( ?, R8 S7 X- t
     adoqs.Prepared ;& Y# {: j& w+ v0 Y3 ^# p0 p( L
     try
! Y% ]# }8 }0 u- ]( P; I/ Y/ J     adoqs.Open ;0 P7 q* G5 n) e7 s8 D- j/ v9 K8 t
     adoqxiaoban.Next ;
1 Z4 v: O8 O+ z8 m0 C# ~     except
# b- m+ h6 Q. E$ {5 {     showmessage(''出错!'');* [: w8 m& \+ W5 B# n1 g5 Q0 ]
     exit;
1 ]+ U  K+ K2 R/ o4 V3 H5 w- n1 V     end;
( W% X3 C# F2 e1 \, U* O- g     end;9 y& m% z0 t. |& }
     adoqlinban.Next ;
8 u, W* D2 t/ _' P     
# I5 `+ |& D+ c! X4 B3 g     这是其中的一段代码 好像出错的就是在这 在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 ;: U! z& q, C- }9 s9 H
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses1 c5 y# }; w9 k' {$ d" U! D
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    7 }' K+ V% B) ^( z- y6 q  G6 H' N  Dialogs, StdCtrls, DB, ADODB;</P><>type4 v# K  x4 X, y% W5 C1 ~  K
      TForm1 = class(TForm)8 T1 d& d& d: M" \% O$ x
        Edit1: TEdit;7 }( T7 O2 u5 Q
        Button1: TButton;
    7 }2 T" S! U* O. B; {; |: E( V7 {    ADOConnection1: TADOConnection;9 H  ?- f  }9 u
        ADOQlinchang: TADOQuery;
    ; m8 o* R" ~1 {# ^    ADOQyinglinqu: TADOQuery;* `2 K& O4 c' c$ t; D+ U
        ADOQzuoyequ: TADOQuery;
    8 v  W, N$ E, Q% M: `: D  t$ Y; v9 W    ADOQlinban: TADOQuery;: _9 ]7 `( f3 R9 k# f. ^
        ADOQxiaoban: TADOQuery;
    3 M. j3 T0 h) s, _    ADOQs: TADOQuery;
    1 g5 p. D. y+ J8 {+ [7 Q: f    procedure Button1Click(Sender: TObject);
    $ }, t6 }" \& x1 q3 O  private; A6 Q8 j3 s& f) {, s, F
        { Private declarations }/ z# q: v2 A5 r' z, F1 I. f9 m; \
      public
    , D* K8 r3 d+ @- ?    { Public declarations }
    4 m& H6 k, N0 ~, T0 ~  end;</P><>var
      q2 x+ |/ r5 k) k1 W: F  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    4 \$ [3 B& r0 B7 {  avar
    : G7 M+ L# `! _: \strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    " K, n; h9 c% ]& v. x' bbegin  E* N2 g: |# V7 k3 o% k2 S1 X. C7 b
    adoqlinchang.Close ;
    $ l2 f7 S( P) x, A/ h7 L* Yadoqyinglinqu.Close ;0 K' T0 s: s, v/ Y5 ?
    adoqzuoyequ.Close ;
    * Y( Z" [, Q2 u) w1 Radoqlinban.Close ;
    / O+ ?' b( U* p+ n8 s) u2 l7 hadoqxiaoban.Close ;
    ; ]) ?4 F) ]- T, [$ z; \# d" T$ Uadoqs.Close ;
    ' U, r- N5 ~7 g# e3 I( I* Kadoqlinchang.SQL.Clear ;, X0 m( {( K# d
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    5 f! Q+ f3 S4 hadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;" t& [; p4 S9 _
    adoqlinchang.Prepared ;, c, H0 b! H2 F2 P' O; S
    adoqlinchang.Open ;- `; j$ n. E5 Y! q( `' V2 q, b
    strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );' C( r$ Y$ N6 F6 d1 U! `: O
    adoqyinglinqu.SQL.Clear ;7 F( t/ X2 z% x& A% K1 S4 b
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    3 Q- |  Z' @; A, w4 m0 Eadoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    , W! {+ F/ K  z& Jadoqyinglinqu.Prepared ;
    8 `* }- G: p7 Tadoqyinglinqu.Open ;' k+ {3 v, Y2 O
    while not adoqyinglinqu.Eof
    " o7 l  _6 O( |# k. q6 a6 H4 mdo0 P  z! ~6 S+ E" H1 b
    begin! J+ j' x4 `% q- ^$ j7 z7 B
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    # M* k8 G4 P  P: Q  strcodeying:=strlinchang+'999'+stryinglinqu;% o' s% R, V2 e1 {( l2 m$ Y
      ADOQZuoYeQu.SQL.Clear;8 l7 d9 u5 }! C6 H
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    8 o5 t9 e/ w- N: B% |  M& v9 ^& G  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    9 @( A7 w5 b9 ]  ADOQZuoYeQu.Prepared;
    4 b3 m  |8 e% p7 s7 b  ADOQZuoYeQu.Open ;9 u+ e8 b* W9 `4 e% g9 A; h4 J
      while not adoqzuoyequ.Eof. c6 J3 r5 {. O6 d
      do
    7 X+ e! F7 I' w+ B$ N/ t  begin
    ; h8 S' ~3 q4 Z# t3 ?) r* T    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码6 p8 z9 K" X2 L* S+ b3 ?1 w
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;( E9 x9 e5 M8 I9 T# Q
        ADOQLinBan.SQL.Clear;7 U, ?. [- t) d2 W2 P) r
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');  o: {1 j0 S% Z; h* k4 e
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;* {& X" @9 ^7 Y8 S
        ADOQLinBan.Prepared;
    ; f, S3 f8 G$ n0 A+ j9 K    ADOQlinBan.Open;" M+ F5 F6 J. d, R' m
        while not adoqlinban.Eof
    " a( T7 {& N" h) J$ ~    do
    6 ?2 _9 U- G9 Q8 m- Z. V    begin
    / S" K; o" Y# S' P      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    / f4 N$ Q  X: R+ V2 F- Z. W      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;: o' ]9 Z3 k( x' O
          adoqxiaoban.SQL.Clear ;6 }  Q, u6 S  s( H' c3 ~6 Y; n/ `
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    4 a. L6 v! r$ Y- K6 n; c0 x% b8 u      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;; ?8 i7 Y$ E; n+ _% g# _
          adoqxiaoban.Prepared ;
    4 s& Y5 L# M$ h      adoqxiaoban.Open ;5 C; E- R5 D7 z4 C' [
            while not adoqxiaoban.Eof% \+ c4 G0 e: ^/ Q% Y/ I
            do
    " G; W( h  _$ |& d$ C        begin' M2 D/ I# K, ?  F
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );3 V7 @7 c8 ]9 X5 I3 `' l
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    ' E/ ]6 W: T7 L+ j  i" _$ Z( w" Z  f          strcode:=strlinban+strxiaoban;: Z0 v( u4 \& ]% m
              adoqs.SQL.Clear ;. N& E& S7 U2 h# h' F4 t/ x( p7 g
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');4 g5 x; M% e" T9 K
              adoqs.Prepared ;& d/ u" B  l: r7 H' i# ]
              try- Z( F3 p9 ^8 n
              adoqs.Open ;
    5 L& n; |' z( D8 [8 K          adoqxiaoban.Next ;/ m$ f  i6 Q" L* V
              except$ _! j6 i; }* c# K
              showmessage('出错!');3 W: ?: G2 t# z
              exit;2 Q+ P, |! N+ D% U" J# N4 A/ U% L
              end;4 k7 c% @, [- l: l. J' Z) H- ~4 m
            end;
    % a5 Q. I  y8 |4 ^        adoqlinban.Next ;- k; H: k- D: Z1 }6 j
        end;
    ; s1 A2 a+ x0 K8 n1 T    adoqzuoyequ.Next;  d/ S3 v! I/ }' H3 s( }: o
      end;
    5 z, X7 F: ^8 g# t* x1 P7 t! i    adoqyinglinqu.Next ;
    1 ]' M% W! s. k  fend;
    ! z* ], W* v1 F5 g2 ^2 `! O" Q  adoqlinchang.Close ;) W. `+ u1 j) ]8 h/ i* k
      adoqyinglinqu.Close ;0 Q$ D' `1 }& |
      adoqzuoyequ.Close ;
    0 A  V2 w* S9 A- {) p) g  adoqlinban.Close ;: D1 J7 E# F* C9 n- p
      adoqxiaoban.Close ;7 r1 ^% K3 u  p0 M$ n
      adoqs.Close ;4 K4 _3 _' g# f( f) D0 T! M/ z
    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);
      `0 `! ?: o$ U/ C" H9 X; V$ Rvar
    ) G4 L2 b0 H9 A; R  str1,str2:string;& u0 S2 c' F! |
    begin% |+ p- l' [4 b8 F. Z
    str1:='001';
    ) y+ r" I" n; E9 lstr2:='002';. x6 b  C& n7 R1 A8 G
    adoquery1.Close ;5 D9 m" o- ~, C
    adoquery1.SQL.Clear ;/ f3 ~, J& f/ W' V3 w/ ~
    adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    % z; ]5 E# u: [: t2 _% sadoquery1.Prepared ;+ a  v1 l% B6 c2 p/ \1 h( q0 x' H
    adoquery1.ExecSQL ;& c5 B5 `% k0 X. v# ?4 o
    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-1 10:18 , Processed in 0.465361 second(s), 97 queries .

    回顶部