CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

一个简单而又令我头痛的问题,高分相送。

楼主snowglave(独孤九剑)2001-05-30 10:36:00 在 Delphi / VCL组件开发及应用 提问

本人最近遇到一个极菜的问题,问题如下:  
  1、DBGrid中如何使数据集置于不可删除和插入状态?  
  2、在DBGrid中如何检查输入数据的合法性?  
  (使用SQLServer数据库,并使用Cached   Updated属性)  
  3.在SQLServer数据库中使用数据库的时间标记timestamp时,如何在Delphi中显示或读取其相应的值?  
  请各位高手不吝指教,酌量加分。 问题点数:50、回复次数:25Top

1 楼TommyTong(童童--寻求兼职……)回复于 2001-05-30 10:40:00 得分 2

Q1:只要将DBGrid所连表的DataSource控件的AutoEdit属性设为FALSE就行。  
  Q2:数据的检查要在Table控件的AfterXXXX,BeforeXXXX事件里写代码。  
  Top

2 楼snowglave(独孤九剑)回复于 2001-05-30 10:45:00 得分 0

to   TommyTong:  
  1:很不好意思,少了一点,DBGrid要求可以编辑修改,但不可增加删除.  
  2:兄弟,有没有看到我所附的内容——   使用了CachedUpdate属性。  
  麻烦认真看看我的问题。Top

3 楼pure_cmh(不死鸟)回复于 2001-05-30 10:50:00 得分 0

1。土一点的办法,标记一下嘛,其他好像没什么好办法!  
  gzTop

4 楼snowglave(独孤九剑)回复于 2001-05-30 10:56:00 得分 0

标记?详细一点吗?  
  想要分,请认真回答问题,我可以单独给你送分。Top

5 楼zyx8(小能)回复于 2001-05-30 11:08:00 得分 0

关注!Top

6 楼snowglave(独孤九剑)回复于 2001-05-30 11:36:00 得分 0

各位高手呢?都跑哪儿去了。Top

7 楼snowglave(独孤九剑)回复于 2001-05-30 11:44:00 得分 0

难道真没有人能给我一个圆满的答案吗?Top

8 楼qianhb(钱)回复于 2001-05-30 11:49:00 得分 0

snowglave(时代超人):请问,  
  你使用什么控件来连接SQL数据库的?   
  Top

9 楼snowglave(独孤九剑)回复于 2001-05-30 11:57:00 得分 0

to   qianhb(钱):  
  1.当然是Query控件,但在DBGrid中要可以编辑,但不可增加和删除。  
  2.在DBGrid中输入整型数据时,怎样控制不输入空值(NULL)?  
  请指教!Top

10 楼snowglave(独孤九剑)回复于 2001-05-30 13:51:00 得分 0

第三个问题不用答了,前二个问题回答正确加满分。Top

11 楼snowglave(独孤九剑)回复于 2001-05-30 14:04:00 得分 0

怎么没有人come   inTop

12 楼snowglave(独孤九剑)回复于 2001-05-31 13:41:00 得分 0

一天的等待,一天的无奈!我的心也随着时间的推移而下沉。天!难道此问题没人能解吗?告诉我,csdn的朋友们,到底我该怎么做?Top

13 楼zyx8(小能)回复于 2001-05-31 14:06:00 得分 3

我正在想这个问题,等一段时间再说!Top

14 楼zyx8(小能)回复于 2001-05-31 14:12:00 得分 0

这是我动态创建窗体的例程  
  用Delphi动态几个相同的窗体  
  1.先定原窗体名如:    
        uses   Outputtest  
  2.在定义几个该窗体的变量  
        Test1Form,Test2Form,Test3Form:TOutputTestForm;  
        同时定义对应的几个布尔变量:  
        Test1,Test2,Test3:Boolean;  
  3.在对应的事件中加入  
        if   not   Test1   then  
              begin  
                    test1Form   :=   TOutputTestForm.Create(Application);  
                    test1Form.Caption   :='test1';  
                    test1Form.ShowCaption(1);  
                end  
          else  
                Test1Form.WindowState   :=wsNormal;  
          test1Form.show;  
  4.  
  procedure   TOutputTestForm.ShowCaption(Captions:   Integer);  
  begin  
        FormFlag:=Captions;  
        Name:='Test'+InttoStr(captions)+'Form';  
        case   captions   of  
              1:  
                  begin  
                        caption:='窗体'+InttoStr(captions);  
                        MainMDIForm.test1:=True;  
                  end;  
              2:  
                  begin  
                        caption:='窗体'+InttoStr(captions);  
                        MainMDIForm.test2:=True;  
                  end;  
              3:  
                  begin  
                        caption:='窗体'+InttoStr(captions);  
                        MainMDIForm.test3:=True;  
                  end;  
        end;  
        Left       :=0;  
        Top         :=0;  
        Height   :=   445;  
        Width     :=   790;  
  end;  
  5.在窗体关闭时  
        case   UserStrToInt(Copy(caption,Length(caption),1))   of  
            1:  
                  begin  
                        Test1:=False;  
                        MainMDIForm.test1:=False;  
                  end;  
            2:  
                  begin  
                        Test2:=False;  
                        MainMDIForm.test2:=False;  
                  end;  
            3:  
                  begin  
                        Test3:=False;  
                        MainMDIForm.test3:=False;  
                  end;  
        END;  
   
  Top

15 楼snowglave(独孤九剑)回复于 2001-05-31 14:16:00 得分 0

莫名其妙!Top

16 楼zyx8(小能)回复于 2001-05-31 14:16:00 得分 0

写错了Top

17 楼snowglave(独孤九剑)回复于 2001-05-31 14:18:00 得分 0

哦!是吗?Top

18 楼jeaking(空空)回复于 2001-05-31 14:19:00 得分 0

你所说的增加是不是当焦点移到最后一行时,自动增加一空白行?  
  如果是,可以在Eof时把焦点移到第一行或停到最后一行,具体程序好像是在datasource的一个叫ondatastatechange(大概是吧,时间长不用记不清了)事件里写。  
   
  关于删除的问题,我好像记得,没有删除按钮不能在dbgrid中删除吧??  
  如果能删除,试一试在数据集的beforedelete中执行abort,看行不行?Top

19 楼snowglave(独孤九剑)回复于 2001-05-31 14:35:00 得分 0

to   jeaking:  
      前一个问题如你所说我会试的,对于第二个删除问题,我用了CachedUpdate属性,beforedelete恐怕不行。Top

20 楼BaldZhang(BaldZhang)回复于 2001-05-31 15:08:00 得分 0

第一个:  
      在BeforeDelete里写上Abort  
   
  第二个:  
      在BeforePost时检查数据的合法性。Top

21 楼snowglave(独孤九剑)回复于 2001-05-31 15:13:00 得分 0

用了CachedUpdate属性之后也行吗?Top

22 楼BaldZhang(BaldZhang)回复于 2001-05-31 15:16:00 得分 0

我的Delphi现在死掉了,等下我看看,应该是可以的,  
  用CacheUpdate时,应该是要调用ApplyUpdates来把数据  
  真正写入数据库的,自己再看一下帮助Top

23 楼snowglave(独孤九剑)回复于 2001-05-31 15:25:00 得分 0

不错,问题是要在执行ApplyUpdates之前,在DBGrid中编辑数据时要控制其不可增加或删除Top

24 楼BaldZhang(BaldZhang)回复于 2001-05-31 15:30:00 得分 45

那样啊,我就确定我的做法是行的通的了。  
  你自己试试吧,Top

25 楼snowglave(独孤九剑)回复于 2001-05-31 16:08:00 得分 0

邪了,上次试的时候怎么回事?呵呵,分照加,谢了。Top

相关问题

  • 一个简单,而有头痛的问题。怎样把字符串转换成Color类型。解决给高分!!!!!!
  • 高分求够 sql语句,~~~头痛~
  • 一个头痛问题,高分请教。。。。
  • 简单但让我头痛的问题
  • 非常头痛的简单问题
  • 一个头痛的问题!高分求救!!
  • 一个非常令人头痛的问题(高分悬赏)
  • 随机数问题~~~好头痛~~高分等候~~
  • 肯定很简单,但我却不知道的问题!头痛!!
  • 一个头痛的简单问题,惭愧啊。

关键词

  • 属性
  • 数据
  • 控件
  • 数据库
  • 窗体
  • 删除
  • caption
  • beforedelete
  • cachedupdate
  • mainmdiform

得分解答快速导航

  • 帖主:snowglave
  • TommyTong
  • zyx8
  • BaldZhang

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo