QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13190|回复: 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.. `, K. S! r3 o
     + ^- `2 e& }% d8 r3 s3 ?: z
     while not adoqxiaoban.Eof
3 Z1 j, p6 Q1 o% E     do5 ]: T6 c' i0 `- I/ d; `
     begin
9 G! y# ^0 i7 B' W+ Z     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
5 g. V# @+ e" r5 q4 P+ T     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
- J4 P' v7 ?5 A' f& o! y1 u     strcode:=strlinban+strxiaoban;7 w. Y" r, N: d+ K) ^" W( O
     adoqs.SQL.Clear ;
* r6 p8 B+ d( J; P5 W. r5 ?1 o     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');2 i7 a* |+ L+ j, w6 y( r' G
     adoqs.Prepared ;# M( G$ j& u0 Y
     try
! |/ c- w3 o  [; N' B1 i2 w. d7 V     adoqs.Open ;3 Y. m( s# \- z5 r
     adoqxiaoban.Next ;
$ A. g; a7 }/ M3 v     except
4 |  t, H0 X1 g3 U* O9 ^5 h     showmessage(''出错!'');
& b  _7 E6 t/ I# \* q. I1 V     exit;: ?- O% G- x9 q. W  ]' @9 j1 p+ p
     end;
- g0 |+ ~# n  e( b- f* N% b0 d     end;
: U7 L5 \2 i- f/ `) g7 d     adoqlinban.Next ;- ]3 y  I1 O, ]8 e/ i) r9 J0 l
     
8 I' ?/ ]. a. _! A. ^     这是其中的一段代码 好像出错的就是在这 在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 ;% {! ^% p; S5 k/ ~
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    / @, v& `/ P8 {  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,$ A+ N" e' B" O6 w; `( p1 [2 \
      Dialogs, StdCtrls, DB, ADODB;</P><>type: ~; w& a( c+ C2 m, O6 {
      TForm1 = class(TForm)
    ; j! s4 i6 p6 f2 G5 a; [    Edit1: TEdit;9 N1 ?  F, w4 i# v2 X% R% n
        Button1: TButton;
    / `) k! O5 p' j+ l/ r/ N2 K    ADOConnection1: TADOConnection;- P* _6 k6 N/ `9 X$ l: V( u
        ADOQlinchang: TADOQuery;# C' l) l5 ^3 b  V
        ADOQyinglinqu: TADOQuery;
    . x; {/ j6 x8 @+ Y7 [8 }( G6 Y: d4 ]: Y) T    ADOQzuoyequ: TADOQuery;  Z4 W5 l6 f' m  Y+ B) ]
        ADOQlinban: TADOQuery;, ]/ Y6 q% I( \  ^
        ADOQxiaoban: TADOQuery;
    $ {) R& h' R4 W: Q  u8 [0 \: z4 W8 R    ADOQs: TADOQuery;
    $ L. s3 s/ L; l    procedure Button1Click(Sender: TObject);- j7 x/ M8 ~7 \5 [9 Y& X! W
      private
    6 R6 p* O" ^2 f# K: A+ y* e" ~0 V    { Private declarations }
    0 x' w/ K" K0 `4 l) K. ~  public: x& H3 W, f) K! I- T. x- G& R! o* x( Z
        { Public declarations }) B1 i# J8 U/ t8 q2 D% B( S0 N& h
      end;</P><>var
    9 y; W; j2 M3 F" J8 I  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);4 X+ j0 c2 q& ^
    var2 d2 r8 w4 K0 X% w
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;/ z. k5 A2 _9 x" |9 a
    begin
    - f5 l8 {' d4 X& m# {2 g4 Fadoqlinchang.Close ;. [1 e" h" B& v$ ~3 D' P* j
    adoqyinglinqu.Close ;
    9 v' b- v* U: j8 Y* S( N( P- o4 Jadoqzuoyequ.Close ;
    ) H) k, M3 N- e% L1 C" Ladoqlinban.Close ;
    ( u0 }# t  r3 p5 f7 nadoqxiaoban.Close ;7 `4 U! y- G' k8 K
    adoqs.Close ;
    4 r1 b3 i; ?) V9 @- V% @adoqlinchang.SQL.Clear ;  l: R+ ]: Z/ G+ m- q
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');
    # `/ t) L* w3 l/ |& W1 P* W8 jadoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    0 B6 l% \! r4 t$ ?0 _' A$ Y) {adoqlinchang.Prepared ;( j# j. d! q8 e3 ?. u3 |
    adoqlinchang.Open ;
    + e8 S  N8 j/ A* D5 F2 Estrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );
    : \4 q' C6 C' _* I! U; dadoqyinglinqu.SQL.Clear ;
    - Y0 |- A+ F* A3 b" ^adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');. F( ?, Y1 H3 @/ i4 n# U
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    ; X0 I# x+ Y8 K4 v& Dadoqyinglinqu.Prepared ;
    ' a/ Y6 E8 Z, w: E' q6 I7 h4 g" h$ Oadoqyinglinqu.Open ;0 u. r1 z  U) }  W! ]% ]
    while not adoqyinglinqu.Eof4 n% V) X8 B% ]; Q$ ~, S
    do' ~2 a6 W$ ]* k( O. C9 s5 Y
    begin
      {% p  T3 L1 n5 t9 B3 u) B  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );+ X. y6 ^$ b8 k. P
      strcodeying:=strlinchang+'999'+stryinglinqu;' Y! e, r5 s. T2 c
      ADOQZuoYeQu.SQL.Clear;6 G# Z( Q/ Y" l- A+ [/ g' U3 Q
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    & m* ^! n& I& c$ o* h4 v5 J9 j7 f  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    * r, |% ?9 B4 K: N! J/ u  u7 K, _4 s  ADOQZuoYeQu.Prepared;
    & I7 a* t/ {8 s: v8 B  \, g( Y' q! S  ADOQZuoYeQu.Open ;
    # U- q5 x7 w2 k! k  while not adoqzuoyequ.Eof
    2 W# i/ x! k7 l* x- @& x: x+ o5 o2 ]- @  do9 F- q; c% Q5 q9 S/ b$ A
      begin: Y6 X. v9 j- \, T" i# }
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    5 g! H: C2 z  ~  o3 z1 d    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;- H9 y! m" K1 w" z0 f( d
        ADOQLinBan.SQL.Clear;' X4 r  _. X1 m! k( y( t. P$ n% P
        ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');0 ^8 X" @/ I: f& ~4 n& \- G- y
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    ! T1 _, y: ^: w9 s0 V    ADOQLinBan.Prepared;
      E; G' ^6 M- H. c2 ?/ ?2 H% G    ADOQlinBan.Open;
    ( H: x4 q! U! _1 o; G/ `    while not adoqlinban.Eof: {8 Q7 q% B' N/ @5 t" e6 k
        do  h3 V) M+ Q9 O
        begin
    2 P9 \# R" i4 A7 u% W      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );8 `: P4 m4 A' {0 u7 b4 t+ N' O8 l
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    ' p( h5 Z3 k+ s3 _      adoqxiaoban.SQL.Clear ;# k% J2 N3 {) k* I0 ]. v2 e
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');
    8 x) X% a; d8 [' u& ?4 }$ p      adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    ( ^% u1 D; A8 `* R; g. d' K3 ?      adoqxiaoban.Prepared ;% Y* f9 s( q2 A5 T4 Z/ P
          adoqxiaoban.Open ;
    / e1 [$ {: \' q- G$ G        while not adoqxiaoban.Eof0 l0 s" J: F7 `/ f
            do2 K. Q$ g+ y! I( i) O2 v% |
            begin6 |& _! m1 s6 A( |% ]( q4 @% r
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );9 z- m% I* c- d! |( Z/ w
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    5 J7 R' L, F  r+ D7 w" ~; h          strcode:=strlinban+strxiaoban;
    $ C+ B& h! K) K. B$ x          adoqs.SQL.Clear ;
    9 I# N9 [% R, B; Q$ D$ @; I% h  P( N- P5 x          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    6 D: N2 m: {9 b; C* q& Z          adoqs.Prepared ;& p' W8 M" @  B; N) f0 X
              try
    * n+ w% t( e0 G' U          adoqs.Open ;  T( N* Q# i. u
              adoqxiaoban.Next ;4 w3 E% e8 w1 f( n- h. @9 a9 {+ b$ B; w
              except
    # b. R9 P5 _5 G, u          showmessage('出错!');
    8 p4 U- }' J, m          exit;  y, g! \6 P3 r
              end;% b9 u: z; j% Z* _% f& g
            end;: Y7 r: a0 g8 K- _. [4 M
            adoqlinban.Next ;, I! Z1 e" \1 i9 m$ c
        end;
    ; m* q- b" l2 H5 }4 b6 i2 C/ S1 R7 s    adoqzuoyequ.Next;
    ! V5 w  ?2 Z8 k: U  end;1 u% ?9 L2 r  x- Y3 m# p. y. N$ f4 B
        adoqyinglinqu.Next ;
    * R: c7 ~+ m- n- gend;- ]' n' K2 v# y- {! I9 i# ~
      adoqlinchang.Close ;
    " a! g9 B% X% A  adoqyinglinqu.Close ;
    2 G6 h( {$ h5 J$ p  adoqzuoyequ.Close ;
    ; N6 Q: k5 d) B! u1 `0 Z, L  adoqlinban.Close ;. O1 O2 i5 q8 f8 n* N0 b" I8 e
      adoqxiaoban.Close ;, J5 d5 w5 F9 m! r
      adoqs.Close ;
    ! q2 ]  o1 \2 r  ?6 H8 Cend;</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);$ i, H; O+ n6 t0 F7 r- `* e' j
    var
    $ G( q# F/ s% `9 V  str1,str2:string;$ X* a9 r7 }8 [/ o5 w1 B
    begin: e- U# h; d. K( u0 [" S
    str1:='001';; c; Z5 O1 Z5 q/ E3 {% i
    str2:='002';
    4 u6 T9 g$ V$ l9 U$ z) }adoquery1.Close ;) B' s! Q( ], o: D+ H! J4 ^
    adoquery1.SQL.Clear ;
    . {) f$ ?; }- v9 R  Ladoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    / M( [/ p7 W' P4 Fadoquery1.Prepared ;5 E. H- `4 w' X$ X, I: L+ z) O
    adoquery1.ExecSQL ;. `) p& d) T+ ?# L$ 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-9-2 01:39 , Processed in 0.444966 second(s), 96 queries .

    回顶部