QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 12557|回复: 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.
; U  |, f# X% t$ F     ; T: k4 F6 N$ U' a6 H7 F
     while not adoqxiaoban.Eof% T( |- W9 o# F3 d# h$ [
     do
' S# E+ v! k  z: e     begin8 J2 v) m' U+ b
     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );
5 }6 G: y: \9 c7 R& M2 l# y     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;( D2 k# Y7 h: U+ n" G8 [
     strcode:=strlinban+strxiaoban;
; T" `( D' E; K; t$ E; ^     adoqs.SQL.Clear ;
. B* E% A) b" k, Z. l. R     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');9 `# h. Y8 m5 E/ e' E$ m
     adoqs.Prepared ;6 I1 y+ A4 {/ |. v- i( a1 P
     try1 \$ b) U' s$ d7 }% n/ _
     adoqs.Open ;9 S$ H; i; T1 Y6 P" V% ?
     adoqxiaoban.Next ;( p! B' L" {, |2 ^
     except$ T4 `, b; A, G
     showmessage(''出错!'');
  x- W9 h" U: ?' \' x     exit;, {( Q: D( N* O0 P. E$ ?
     end;
' U; [& ^5 F# p( b     end;7 a; k0 H* L5 V8 y. l- \' Y: ^
     adoqlinban.Next ;
+ ^: Z2 q' W. P# O- ~  Y     ) m; x& B( {2 d# C( z
     这是其中的一段代码 好像出错的就是在这 在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 ;
    / C6 n2 \& y  A/ g' |, e, s你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
      y- o/ `" ^  R3 y5 o% ]' ?# r& Z: N  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,; \* ]4 S/ N5 z" b
      Dialogs, StdCtrls, DB, ADODB;</P><>type
    ( ~" E7 T4 x8 J% T, `! `3 S  TForm1 = class(TForm)
      P& A- k. B0 @' g, P$ m    Edit1: TEdit;; W% l& I" P, X, X9 Y% h
        Button1: TButton;
    ) I0 ?( o9 J3 i  Z    ADOConnection1: TADOConnection;
    ; c! z) n2 m$ l1 b# T    ADOQlinchang: TADOQuery;
    ! s$ L3 w& A4 c5 v/ m7 G    ADOQyinglinqu: TADOQuery;# e" N4 U& }7 ]& x7 q( j/ M( l
        ADOQzuoyequ: TADOQuery;" y) G" i& p# f
        ADOQlinban: TADOQuery;, h- S$ N+ @; v; V' w
        ADOQxiaoban: TADOQuery;3 L' U" J0 K' D# s
        ADOQs: TADOQuery;% z  N- j4 o' ?% a
        procedure Button1Click(Sender: TObject);; F0 F) s) n* u! k
      private
    & a5 }, l6 w7 J    { Private declarations }& l* Y) ~5 Y8 v0 A: [9 v
      public
    6 ^0 a# u) l& O1 b    { Public declarations }
    2 \  b5 m! Z2 @& {2 g# i  end;</P><>var0 m7 F0 f- b& F' t( T% O
      Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);) J; i: W0 K! F) W- e8 P& n2 ]
    var# \. ?8 B7 Y; s- U( K
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    * |) C8 X. W2 kbegin5 ~) c# A" o4 A
    adoqlinchang.Close ;% ^$ ^# C8 q! }5 p) ?
    adoqyinglinqu.Close ;
    , m# s7 R! k* y3 J" Fadoqzuoyequ.Close ;. p& g' ^) U; K% M8 t
    adoqlinban.Close ;1 [/ L4 |( U& t& H
    adoqxiaoban.Close ;6 a  Q$ F5 ^- D/ X  d2 \
    adoqs.Close ;
      `$ [6 O. r/ Zadoqlinchang.SQL.Clear ;) L) f; j% @+ {4 P/ u
    adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');& ]% y3 T0 Z. C
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;
    9 h; @' Y* p# h* ~# M, l5 Wadoqlinchang.Prepared ;
    3 M: b1 E* @/ \adoqlinchang.Open ;
    & s% h) a. m! j/ z, C2 t3 qstrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );" C1 d9 a6 y0 B+ U4 q
    adoqyinglinqu.SQL.Clear ;
    " }/ d! I! J9 f0 h* [  `$ ^2 |adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');, Q. B( J; N2 v; Q/ g" ]* |+ K
    adoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    ; t! V+ ]2 Y9 Padoqyinglinqu.Prepared ;- Z  o* f9 P, K4 d2 ^, B# T+ a% S' m' c
    adoqyinglinqu.Open ;) Z; f9 i0 r9 H, g$ I( s' D
    while not adoqyinglinqu.Eof/ I8 H5 ^1 V" C4 W
    do
    ) \: e6 M- J2 G# K+ Obegin& S3 i! K2 ?/ f( Y  ^6 o% P# s
      stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    - _9 H$ l) J2 |1 c  strcodeying:=strlinchang+'999'+stryinglinqu;
    " j2 D  R3 o' ~9 @  ADOQZuoYeQu.SQL.Clear;
    $ U; t5 l5 e* Y, t3 e  ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');
    4 U8 o5 y" N- m  ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    & C2 [& E3 p) x  ADOQZuoYeQu.Prepared;
    7 j0 i* n7 B' j, q4 R$ a3 P9 h4 @) F$ V  ADOQZuoYeQu.Open ;
    % ]# a" _1 A0 E; K: ]  while not adoqzuoyequ.Eof7 p2 i# q' R! \4 t1 f
      do
    0 P4 J2 `3 H# U0 C; H  begin5 ~" I4 R4 ?' D# Q$ w# F
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码
    , R4 R2 ~: ]) Y+ U" b9 u    strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    & M& J$ e3 K. p  Q" o    ADOQLinBan.SQL.Clear;
    . t* c+ `0 u: F8 k% c7 i    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');. E% r5 i, O' l. O0 m+ x% L5 Z
        ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;1 X9 ^6 d0 O( |( u
        ADOQLinBan.Prepared;! l' ]# `4 U. X7 r5 J$ m
        ADOQlinBan.Open;9 [8 o4 s. W. i# a
        while not adoqlinban.Eof
    / X3 o! {" u0 t# V' k* J) f9 u3 k    do
    ( O( B4 r- B3 T7 X, p+ k# f$ \    begin
      I9 y8 |2 ^' l& P' |) k: M      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );
    ' M: N- t1 R' C& a5 M      strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;* @, Z/ ^9 Q# L6 n$ c" B
          adoqxiaoban.SQL.Clear ;  s/ t" I) X# u% f# H6 v
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');) J: B6 G. n* M' g+ a/ q
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;' S' G+ z. |7 `' W# j, P6 `
          adoqxiaoban.Prepared ;% T5 L$ P6 ~7 A: L
          adoqxiaoban.Open ;
    ; T$ M2 `) q. ^9 P' ^  K        while not adoqxiaoban.Eof! J& U$ V/ b7 S
            do
    # ?6 U1 D! d+ a9 d1 c        begin- a& W1 O4 o0 G( m9 G( x
              strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );
    ( ?- t6 Y( g" d( |% M5 E          strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;7 G- M' S: c! F9 z3 @
              strcode:=strlinban+strxiaoban;
    2 R! Y0 ]8 @! r0 o! b          adoqs.SQL.Clear ;+ t+ Q5 t1 U- }2 o; ?1 p$ h
              adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');$ Z9 x: P, O% D6 t2 _
              adoqs.Prepared ;* L0 F/ X( Y" d- T% D7 R2 R
              try
    6 R; Q/ s5 o8 ]4 w9 L/ L* A          adoqs.Open ;
    7 ~( V1 \9 k0 n' W0 X          adoqxiaoban.Next ;
    : P7 o4 s$ }6 o' _/ d% Y" a2 {          except
    # ^* L8 g% k8 C& T: }          showmessage('出错!');
    0 w. c) S! k) j$ O$ [6 O) n; y% N          exit;
    + i4 K' i2 d; [5 A4 \          end;
    ) W6 n/ O* g$ S' L        end;1 x2 O! L: T* z& q4 q2 a  ^
            adoqlinban.Next ;* ]6 i' l5 c2 v) G% `1 _) R
        end;; H0 U0 G! I0 l" H( s
        adoqzuoyequ.Next;; x! ?% r3 J. S2 s1 R# }: D. P9 d! _
      end;; ~$ l1 _- y' q4 k! ~4 U. ?
        adoqyinglinqu.Next ;
    ; K8 C& S2 z* W( }* y: l$ Nend;
    8 R' @* w6 K) D# k* T  adoqlinchang.Close ;6 r4 C1 V- L0 a- Y3 b1 Q8 n
      adoqyinglinqu.Close ;
    9 V: b( \! e4 Z4 `% @! O+ W* C  adoqzuoyequ.Close ;
    * ?2 F: f# F6 w% n1 v8 W  adoqlinban.Close ;  e8 O- {- a. ]  r8 \4 u4 _
      adoqxiaoban.Close ;( d0 i0 F! i1 p/ u/ q6 g
      adoqs.Close ;
      |6 r6 l: [; ^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);& L1 U$ M5 h/ q
    var" Y* w: o, |2 R$ m" Y) S
      str1,str2:string;
    " @3 q$ d  c3 v0 m/ Lbegin
      B: h, O1 K% \2 `str1:='001';
    8 F& T1 k! i. a4 V6 Zstr2:='002';4 t' ?' J: T# D; p0 u- i; R
    adoquery1.Close ;
    ' _" h; g  M: n6 Yadoquery1.SQL.Clear ;
    . m0 b' O' i& T+ S. |adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');
    - U0 _8 S( q$ j& k6 n  N$ n) aadoquery1.Prepared ;
    . p9 t' `4 j% R# P& dadoquery1.ExecSQL ;8 W2 R) w4 g7 Z% M/ d2 }% u" I
    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, 2025-8-16 02:15 , Processed in 0.867161 second(s), 95 queries .

    回顶部