QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12889|回复: 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.: S- g2 z  e) q2 _6 b' E" H- `" e
     
* ~; K( H, i& G/ V0 z/ h     while not adoqxiaoban.Eof. i9 C, ?$ v- x( ^9 t8 F% r
     do5 i% N3 G: m5 W7 L3 H
     begin
  m/ i7 e2 L" D$ j     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
* U1 c- d+ R$ k     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
: @5 o( s' l; Y% M7 |  O. d     strcode:=strlinban+strxiaoban;9 h- l; F0 N0 D6 Y& u+ H
     adoqs.SQL.Clear ;
- M& Y! r- ?7 `/ c" R  ^2 e     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
! D- m, r& n5 q; u0 q     adoqs.Prepared ;
. {! q3 y0 Q+ \     try2 {& L/ `: a! ?3 p
     adoqs.Open ;% r) N/ N; {6 U; E! L/ T) A
     adoqxiaoban.Next ;
- P/ c3 g: i6 d- S9 ^     except
) k/ k3 Y1 z/ D3 a/ y     showmessage(''出错!'');' K3 a! ^& R% I& w
     exit;
0 j# c* B4 ?3 e9 U# s     end;2 M; K* Y4 l; o# C% j$ A" C/ O
     end;
  q5 J) E# S, K8 i/ E( L; b! g) I     adoqlinban.Next ;
) W( p, ]+ V4 U     1 H: {- ~" y, c! F
     这是其中的一段代码 好像出错的就是在这 在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 ;
    * Y7 Q0 P, E% G' D9 z( A* F你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    6 e9 Q  Z, w- P5 q: M1 z  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    ; r7 O# y- u+ D# Z2 K- F  Dialogs, StdCtrls, DB, ADODB;</P><>type
    6 [9 }1 z2 C5 y2 r3 J5 V  L+ g  TForm1 = class(TForm)
    1 S% W1 h5 F* t# V* k: F$ u$ {    Edit1: TEdit;
    7 P* Y& n: ]( A9 k& c* i    Button1: TButton;
    : O+ ~0 |* K3 W& {& e    ADOConnection1: TADOConnection;/ Q$ Q: ~- S  ]8 U# ~8 Z! u! l
        ADOQlinchang: TADOQuery;
      m8 q/ @; r* }$ i9 c! w" X. Q    ADOQyinglinqu: TADOQuery;; f" S# \; K6 H! I
        ADOQzuoyequ: TADOQuery;
    & l5 g( ^) V) \) L  Q    ADOQlinban: TADOQuery;
      L1 M, m0 R7 u    ADOQxiaoban: TADOQuery;
    5 C( P% v. T; m8 M    ADOQs: TADOQuery;
    % |& M7 h! B/ O( D2 n' A( X4 W    procedure Button1Click(Sender: TObject);
    7 U2 r3 _- ]0 U2 p# i: t  V  private/ T% l6 {6 [( d& k' H' o0 x
        { Private declarations }/ e% Q) p* Z% [% T9 a3 g" A
      public
    8 U* B- h& A0 j5 {& F0 ]2 b    { Public declarations }
      E$ Q  Q7 }( D  end;</P><>var/ C( G% `( G6 ^4 m: n* j# u
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);
    6 |. Z2 }3 @1 K' ^: v6 ovar, [) I' |# |5 ~! s$ |
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    3 O+ \$ g& v: W& k8 m8 \/ r' q0 F1 Dbegin
    ) k7 ~( O7 r5 k7 P; ?& L* gadoqlinchang.Close ;
    - @$ r! E' {" Tadoqyinglinqu.Close ;% u5 u* a0 x' ~& S; F$ _0 ?' ]
    adoqzuoyequ.Close ;
    9 u$ s) F0 Y* N. o. eadoqlinban.Close ;
    * |5 K2 T$ \  }2 @; b! Aadoqxiaoban.Close ;
    , q- I8 v9 u3 L4 L  l( ]adoqs.Close ;
    7 A7 h8 G8 }! Y1 Cadoqlinchang.SQL.Clear ;
    2 M* ^# N# h( n& G5 J! n$ z: ~/ zadoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    ( d- J- e# X  R3 p! @6 x6 Q6 ?' ladoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;: ]( B0 R$ I; o/ r1 z
    adoqlinchang.Prepared ;
    - S: w* u9 ^% J& kadoqlinchang.Open ;
    - F2 a; }6 X2 n* E0 G+ ?. M+ ~strlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    , v8 U8 L/ E# y2 x! }! Hadoqyinglinqu.SQL.Clear ;
    ! q0 t- \8 L  m  K% Padoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');, D% g3 p) n$ ~  J6 ~+ T( I0 w5 a
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;1 k) E& O! n$ Z6 X% l
    adoqyinglinqu.Prepared ;, L7 j# w- ]& `$ t
    adoqyinglinqu.Open ;& N  m, L( L! z0 `  F0 K# |+ o
    while not adoqyinglinqu.Eof
    ; l4 O8 m1 q  M/ P% Y) |8 qdo
    * F* e2 |8 L# ]% k, B2 lbegin
    * u7 W! h% T& W& `( S1 I  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );, K, D/ \9 M, E5 I# v! c
      strcodeying:=strlinchang+'999'+stryinglinqu;
    ( i$ F* G9 M, C9 w  ADOQZuoYeQu.SQL.Clear;" J8 q3 B, s" T1 F* ^% L
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');- ]) N; A1 c# v$ c7 B
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    % `' k' a5 h9 y! v6 Z6 f  ADOQZuoYeQu.Prepared;
    ( x0 Y) I. X- |0 x  ADOQZuoYeQu.Open ;2 D" J: ~5 i. h- G# t, D
      while not adoqzuoyequ.Eof
    ' T0 d; Y$ R' `* i! W  do& V( J1 t+ ?' r0 ^0 W
      begin
    * m. E, J* P7 o) r& c' K    strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    . p$ F! w0 x. K3 i* T3 G    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;2 z8 h5 D! W7 C& |  n
        ADOQLinBan.SQL.Clear;
    ! z% }2 \7 P/ n    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');+ ]& J1 t" E0 K
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    * e9 {9 c9 d) U8 G$ w* j* V) J    ADOQLinBan.Prepared;+ _( I5 H% n$ L8 H  c$ ^( j$ B' Y
        ADOQlinBan.Open;9 j; }4 Y- b3 S1 b* B; p
        while not adoqlinban.Eof6 w! G8 h: ?0 {; @6 S# X
        do$ @7 `8 b" _8 E' T8 N
        begin
    ; F* p8 |' y, J% O      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    , h- C, p! a4 |  b9 `      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;" `- y. J% [. W. T* `) J  f
          adoqxiaoban.SQL.Clear ;
    2 e7 n3 p- |. w. p3 `% H0 i4 @8 ]% F7 f      adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');- W- ~6 V1 E7 j9 \) ?, u( V
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;; \4 ^5 A: j2 V/ U. y) f
          adoqxiaoban.Prepared ;! }2 M, }6 l' _  i( N% N
          adoqxiaoban.Open ;
    * r$ U6 p/ v4 ^8 Z6 \        while not adoqxiaoban.Eof, B/ [8 l2 Z  P
            do, j9 x8 s, A& N6 E; w7 b# S" e
            begin4 j; [6 B/ Z7 S$ W4 T& K- y
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );9 J" d1 q6 k0 v2 j% Y0 O
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    8 \2 _+ V8 q. d: v4 x$ x5 Q3 {          strcode:=strlinban+strxiaoban;
    ( V! b; \2 S1 a0 e* k$ G          adoqs.SQL.Clear ;
    & _. v: N5 F& Q+ {; Y) J          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');. o- L( c1 v3 d9 ]$ ?! U6 N1 O
              adoqs.Prepared ;
    $ s8 A! X: c# Y* Z8 ~# Y# o          try. V3 h# m: N! N" r
              adoqs.Open ;4 F' z, W: D8 ]) F# p+ ^
              adoqxiaoban.Next ;0 ~& H+ N: b/ l* d( u% }9 P, e
              except# ?8 f; X( ^) x
              showmessage('出错!');* J8 g: c+ ]2 f) o+ Q
              exit;7 F+ a5 P. r+ s* X! G
              end;
      E( _# d( O& H5 A. B% D- Z        end;
    2 m4 q- I: \" h5 V* K        adoqlinban.Next ;
    + X$ v' Q/ Y5 ?2 H; E6 g( ]5 ]    end;
    ( Z+ E- a( Z9 J3 B# W  d5 y. K    adoqzuoyequ.Next;
    , R$ e- X, c$ U6 u  end;
    $ G) M2 Y" E& L4 @! |: y4 P+ C    adoqyinglinqu.Next ;( @: E5 I4 M* R5 |2 O9 ~
    end;$ x* X! r) O5 H8 o/ q% _
      adoqlinchang.Close ;
    ( `: h- f' ?+ G' a  adoqyinglinqu.Close ;. Y7 Q3 o/ N" m* w0 U  x, F+ H; M9 m
      adoqzuoyequ.Close ;
    / _( U" V4 t6 x  z7 d  adoqlinban.Close ;" ~( k; @+ H/ Z8 G$ r5 j8 p
      adoqxiaoban.Close ;
    4 S  ~. G9 Q/ N$ z* c2 L  adoqs.Close ;
    . C6 Y5 E$ J$ \7 u% M- ]. @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);
    " H3 R/ Z( Y& r$ ivar
    - R& ~8 M' `; q& G# [  str1,str2:string;
    * y% j; |' G( h" n* ^& Bbegin( q7 a+ z7 I( a1 v
    str1:='001';) d. r; l( x& B% j( ^
    str2:='002';' L  R$ D$ r# a1 l6 _* Q' D! l
    adoquery1.Close ;
    5 z& k1 G: Q, |8 @, t$ uadoquery1.SQL.Clear ;
    # a/ U, \0 q& W* hadoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');7 {/ K2 @$ P/ Y. w0 d/ }* ]" P  Y! T
    adoquery1.Prepared ;% N3 S. ^# D5 B, ~* W# X
    adoquery1.ExecSQL ;
    ) n1 Z* ]# h: V) T) e' n8 Mend;</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-17 19:53 , Processed in 1.832835 second(s), 95 queries .

    回顶部