QQ登录

只需要一步,快速开始

 注册地址  找回密码
查看: 13358|回复: 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./ O9 ^3 W9 u7 t" [( R
     4 g7 l! m/ T/ A. w; O
     while not adoqxiaoban.Eof% x8 ^* F6 U4 {  \' x- m1 g9 s& ]
     do+ i/ j% Q2 U9 M4 P5 ]1 A
     begin
; [% W% S5 V; {7 i3 M     strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname(''areacode'').AsString );& I( l- @7 y4 ~9 @4 R, A% M
     strcodexia=strlinchang+''999''+stryinglinqu+''999''+strzuoyequ+''999''+strlinban+''999''+strxiaoban;
7 n1 B8 S6 M0 @  T: x8 A8 D1 f3 o     strcode:=strlinban+strxiaoban;; a$ `7 x; J& F, a6 ^8 v: t* S( G
     adoqs.SQL.Clear ;; J) ~* \8 A# e( c  \4 l
     adoqs.SQL.Add(''insert into test1 values(''+strcodexiao+'',''+strcode+'')'');
$ V% y/ y( q+ h2 C) K& j     adoqs.Prepared ;% \7 s3 c1 K2 e  C6 G4 D
     try+ [7 `' D/ J# S
     adoqs.Open ;* Z5 a" l: Z$ Z' t. {
     adoqxiaoban.Next ;! @) b* d5 {% ]# B# X$ V1 V
     except& C6 V2 T4 G+ Q! R: h1 j2 w/ N" O
     showmessage(''出错!'');
- R" T( E% N$ w, n     exit;6 ~% R3 |7 ]( L* r& s
     end;4 A. L9 L3 j& M: O6 V; q: K
     end;
- h) Q7 T' A) p" _% u" N" K, X     adoqlinban.Next ;
" {, T$ ?4 E4 [3 ]     
$ k5 \% \  g# v2 q     这是其中的一段代码 好像出错的就是在这 在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 ;: |0 ?' E8 {+ P2 F" q4 N2 T
    你先检查一下SQL语句对不对,我这里好多变量不知道,没有办法帮你调试!</P>
    回复

    使用道具 举报

    penguin        

    1

    主题

    2

    听众

    23

    积分

    升级  18.95%

    该用户从未签到

    网络挑战赛参赛者

    新人进步奖

    <>好的 我给你全部的代码吧</P><>unit Unit1;</P><>interface</P><>uses
    6 ]6 L$ S" _$ L* V. P  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
    ) U+ c4 `1 B2 ~) H9 B8 O# D2 B  Dialogs, StdCtrls, DB, ADODB;</P><>type  E7 A/ c$ a+ w+ ?4 j5 Y- o
      TForm1 = class(TForm)" v* j. d3 }5 Q- g8 D6 [
        Edit1: TEdit;7 S6 x- M( j! \3 S# H- W
        Button1: TButton;
    % ^1 K9 s5 `% v8 U( }% j2 U* G8 V    ADOConnection1: TADOConnection;) D; `3 X3 K- R) T$ }
        ADOQlinchang: TADOQuery;( Y9 h9 _. U( M7 u! v
        ADOQyinglinqu: TADOQuery;
    2 ]5 F- p0 L6 f3 T    ADOQzuoyequ: TADOQuery;
    ) |6 X  b0 d! m2 p9 q, }( W    ADOQlinban: TADOQuery;
    . [/ d  e8 |1 O- \    ADOQxiaoban: TADOQuery;3 p3 ~+ y% Q" b1 w
        ADOQs: TADOQuery;
    . S* t2 i) I% }* C! B8 B    procedure Button1Click(Sender: TObject);
    7 G3 g( Z/ I; {  private
    7 M" C; j  P- _8 x+ E    { Private declarations }" I2 l/ F! m3 x  i
      public1 h9 I& r; M* _) c! E! \% I
        { Public declarations }6 U" S, ?7 {. ~
      end;</P><>var
    % [. I# i. G. t* r9 H* r  Form1: TForm1;</P><>implementation</P><>{$R *.dfm}</P><>procedure TForm1.Button1Click(Sender: TObject);  V' g7 n' p) o# P/ c0 q) k5 g
    var7 i4 V5 H2 n( l/ f" n
    strlinchang,stryinglinqu,strzuoyequ,strlinban,strxiaoban,strcodezuo,strcodeying,strcodelin,strcodexiao,strcode:string;
    : K, t' y  {! A, lbegin
    & D; g% j4 z0 U, k' cadoqlinchang.Close ;7 g. Z+ ~& Q7 \9 t( o! [7 q" n3 T4 B
    adoqyinglinqu.Close ;1 p. u: S! J! h9 {& ]! T# O
    adoqzuoyequ.Close ;
    5 a; Y  I$ r# Z" yadoqlinban.Close ;
    . C4 d7 U3 A- H' r( \; vadoqxiaoban.Close ;
    ) E4 z9 x: V/ P8 o' l3 ~; padoqs.Close ;- b2 a, m5 G+ M8 a7 h
    adoqlinchang.SQL.Clear ;
    & @$ r" W* l# F8 H- W% @adoqlinchang.SQL.Add('select areacode from tfsareacode where areaname=:linc');9 w& A' u! p" Q% |
    adoqlinchang.Parameters.ParamByName('linc').Value :=edit1.Text ;; f5 h+ @0 m8 _/ p% `- m5 h7 r
    adoqlinchang.Prepared ;- U% i; D( y. ~* w
    adoqlinchang.Open ;
    4 ]  c: e0 f# M# x% O/ g  Estrlinchang:=trim(adoqlinchang.Fields.fieldbyname('areacode').AsString );, q5 x! z6 D) ~) H3 U2 ~% ]* j
    adoqyinglinqu.SQL.Clear ;) Y4 h7 W5 W7 q, R, W
    adoqyinglinqu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linc');
    7 z5 J4 J; A2 {* y- C$ A- b( Badoqyinglinqu.Parameters.ParamByName('linc').Value :=edit1.Text ;
    3 w' s- L% [% Sadoqyinglinqu.Prepared ;
    5 i% r2 K3 V; n: Sadoqyinglinqu.Open ;; T/ ]" Z+ F. Z0 r. F9 n( d
    while not adoqyinglinqu.Eof
    8 [$ E1 N" O7 J" ]% q* t' Tdo
    , A# t# k: S8 a9 ]6 \* L0 Jbegin
    + o% ?( D3 m3 }) i3 V8 Y/ ^8 O* I: g  stryinglinqu:=trim(adoqyinglinqu.Fields.fieldbyname('areacode').AsString );
    ' a! W' w9 {. R  strcodeying:=strlinchang+'999'+stryinglinqu;
    ' L8 D8 n: c( u: |5 A# v( G# @' ~3 s  ADOQZuoYeQu.SQL.Clear;/ T( S1 Q3 {* h- r
      ADOQZuoYeQu.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:yinglq');/ Z$ D5 q8 f) j* i3 ~" k7 v
      ADOQZuoYeQu.Parameters.ParamByName('yinglq').Value:=ADOQYingLinQu.Fields.fieldbyname('areaname').Value ;
    0 F. Z- u' h: F6 {* [  ADOQZuoYeQu.Prepared;
    + D, O- s+ ?+ r6 V$ |  ADOQZuoYeQu.Open ;
    ) ]+ v3 s8 D  k: S9 p2 w' S  while not adoqzuoyequ.Eof; y5 K& m- j6 T/ I5 E
      do
    " k9 b; o2 t# X: O' z2 s* d  begin; o2 [3 C* ~5 f) `1 Y, D9 }
        strZuoyequ:=ADOQZuoYeQu.Fields.fieldbyname('areacode').AsString ;       <a>file://逐</A>个作业区的代码7 o- p. n5 {6 ?& i9 q; E+ A3 f
        strcodezu=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ;
    ! M! q7 M* t) E. u# ~4 p    ADOQLinBan.SQL.Clear;
    - a* f5 ^% N" w& K/ @1 O    ADOQLinBan.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:Zuoyq');
    ) G, v1 j3 K9 }1 t+ }$ I! @2 q4 K    ADOQLinBan.Parameters.ParamByName('Zuoyq').Value :=ADOQZuoYeQu.Fields.fieldbyname('areaname').Value ;
    ( u8 s: k, P" ^/ o    ADOQLinBan.Prepared;
    # F: I* b, W! K8 Q% ^* ~: d" o% H    ADOQlinBan.Open;
    6 I7 ~4 m3 V2 t+ V8 c    while not adoqlinban.Eof
    7 N, {; Y; b( M  |9 l2 b    do
    % J1 ]$ h) f. @5 j! _4 y; _    begin
    7 [: d; S! N2 x) \: J+ O2 V7 l9 f# N      strlinban:=trim(adoqlinban.Fields.fieldbyname('areacode').AsString );& d4 g. d/ m8 P1 x5 m/ {' J, g
          strcodelin:=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban;
    - v1 c& n( B* E      adoqxiaoban.SQL.Clear ;$ }1 F9 R$ _; y% N
          adoqxiaoban.SQL.Add('select areaname,areacode from tfsareacode where fatherarea=:linb');, _$ ]( B7 [; }+ U3 H
          adoqxiaoban.Parameters.ParamByName('linb').Value :=adoqlinban.Fields.fieldbyname('areaname').Value ;
    6 t4 p0 n5 F5 `- \      adoqxiaoban.Prepared ;0 L4 H4 }2 b# x& |2 ?1 I  r% Z! {* k
          adoqxiaoban.Open ;
      |8 f6 ]8 Y1 @' H        while not adoqxiaoban.Eof
    ' L" E2 {# t" M( I        do
    + D6 [1 D+ p9 F0 C        begin
    / g5 K( l9 h% D" b3 b          strxiaoban:=trim(adoqxiaoban.Fields.fieldbyname('areacode').AsString );; c$ R  [3 G3 X  ~
              strcodexia=strlinchang+'999'+stryinglinqu+'999'+strzuoyequ+'999'+strlinban+'999'+strxiaoban;
    . u! ~! w8 o3 J" c' o          strcode:=strlinban+strxiaoban;% j) q1 Q. n; ]% a* m2 W0 G
              adoqs.SQL.Clear ;
    - g/ D2 S) e( K, ]9 @2 V, b          adoqs.SQL.Add('insert into test1 values('+strcodexiao+','+strcode+')');
    9 l1 o3 ?3 l  k" [0 f1 n          adoqs.Prepared ;
    % h! ?/ A6 |0 ?: H, u. o4 l          try- N/ ?, Y+ w7 j  W
              adoqs.Open ;. E, B; @6 [" S! m& w; N+ _/ m/ T' |
              adoqxiaoban.Next ;7 S  W, U: h6 g+ b0 L% I
              except
    % G( x3 G/ ]% P/ N4 J. ?# y0 [          showmessage('出错!');
    3 ?" p) L3 f( H0 o. N1 [7 c          exit;- V. q, w/ y8 w' X* o4 r
              end;
    3 I6 z& e/ ]2 z! g# N0 X( R5 ?        end;
      p8 g9 r  D: e        adoqlinban.Next ;
    9 ?8 `% @. f9 G# K& Y8 b    end;- v6 |5 x! x$ U, I$ z1 ]
        adoqzuoyequ.Next;, K5 [4 N! U5 q$ N
      end;9 a' s& d. ^* e
        adoqyinglinqu.Next ;. y  f6 n+ F. @% D5 Q; A; Q
    end;
    ' w, R% _; ^, V4 Z# K  adoqlinchang.Close ;  X7 ?8 Q9 O% R; x
      adoqyinglinqu.Close ;* Y# ]# B) @' G! A' ^
      adoqzuoyequ.Close ;7 [0 z4 ]9 z% K! v
      adoqlinban.Close ;- N6 W5 L3 t1 i; S" S- G8 L5 a
      adoqxiaoban.Close ;
    5 S/ V9 e7 E. F2 u8 [) W% ?  adoqs.Close ;
    5 u" f! e8 q) @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 A5 |+ [2 o, c0 K) L& @- X
    var1 L2 p  m0 K5 u7 T
      str1,str2:string;
    ' _: T4 N% t; E' n2 z( j: n, Cbegin* o% \  u, }6 U6 }8 M0 t
    str1:='001';' C9 F% n2 V: D/ A/ Y" c' }
    str2:='002';
    8 T" Q, {% c5 p' N7 a6 h6 g6 n) a2 tadoquery1.Close ;
    3 \+ ]' V+ C& Q$ n2 [5 c( madoquery1.SQL.Clear ;
    / P! C5 k, n* W; M4 w* |9 `adoquery1.SQL.Add('insert into test1 values('+str1+','+str2+')');9 ^0 t6 T% U, b5 n+ z3 u+ N6 x" V
    adoquery1.Prepared ;( ?/ F/ z1 I" J3 H0 y, f
    adoquery1.ExecSQL ;
    1 D: N! K+ o8 U6 d! M2 tend;</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-10-17 08:59 , Processed in 1.124548 second(s), 97 queries .

    回顶部