急求答案!高分求解C/S数据库入门问题(200分)

  • 主题发起人 主题发起人 mikecool
  • 开始时间 开始时间
M

mikecool

Unregistered / Unconfirmed
GUEST, unregistred user!
1、关于自动登录SQL SERVER数据库

2、在一张表的不同字段中设置权限

3、Report报表制作,(用Quick Report Or Report Builder)

以上请各位大虾帮忙,希望有实例带有原码,保证不侵犯你程序的版权
按质量给钱,多给多送!200分只是个定金,如果有好的大大的分数在后面
我的信箱是教育网内:developer@shtdu.edu.cn,
教育网外:mikecool@263.net
很大的,保证放的下,如果能够的话,两个都发一遍因为我们的服务器不大行
老是出错!

决不食言!!

急用!!
 
1、自动登录上sql Server
先设置好ODBC数据源,然后使用TDataBase
  设置好以下项:Alias Name :设置好的数据源
         Database Name : 随便一个名字
         Params : User Name = Sql Server的一个用户名
              Password = 相应的密码
         LoginPrompt : False
Connected : True
2、设置不同的权限
  这个题目我不太明白

3、Report报表制作
  我也不知道,我是一个初学者,如果谁知道请告诉我,不胜感谢。
 
用 Tangqs 的办法可以解决连接SQL SERVER7

2 在一张表的不同字段中设置权限
不知道是 在 SQL SERVER 中设置,还是 在程序中控制
如果 在程序中控制 就不用再讲了吧.
3 Report报表制作
看看 DELPHI 的帮助 例子 吧
/:)

 
1。关于自动登录Tangqs说的没错,也就有在你的程序中放一个DATABASE控件,双击之
在name 中写入你想的名字,在ALIAS NAME或DRIVER NAME中写入的源数据库别名
或数据库驱动。单击DEFAULTS得到一组语句,写入用户名和口令。在把login prompt
复选框不选中,把自己的TABLE、QUERY,ST等的数据库指向它即可:
以下是PARAMETER OVERRIDES中的一段例子:
driver name 选择MSSQL
DATABASE NAME=net //自已在NAME中写入
SERVER NAME=mysqlserver //自已写入
USER NAME=sa //自已写入
OPEN MODE=READ/WRITE
SCHEMA CACHE SIZE=8
BLOB EDIT LOGGING=
LANGDRIVER=
SQLQRYMODE=
SQLPASSTHRU MODE=SHARED AUTOCOMMIT
DATE MODE=0
SCHEMA CACHE TIME=-1
MAX QUERY TIME=300
MAX ROWS=-1
BATCH COUNT=200
ENABLE SCHEMA CACHE=FALSE
SCHEMA CACHE DIR=
HOST NAME=
APPLICATION NAME=
NATIONAL LANG NAME=
ENABLE BCD=FALSE
TDS PACKET SIZE=4096
BLOBS TO CACHE=64
BLOB SIZE=32
PASSWORD=0520 //自已写入
3。QR很简单,中NEW中新建一个REPORT,然后放入QRBAND 等其它控件即可,有空时我再给你寄例子。
 
谢谢各位的支持!

自动登录在大家的帮助下我解决了!可以给Tangqs记下一份!

还有些东西不清楚继续提问!

如何用Query进行数据输入,迫切要求解决呀!

我指的权限是一个共用窗口里有共用的一个Table,但是有几个字段的有不同的权限
由制定的用户填写,如何实现,而且还要共用一个窗口

Report的例子好难懂呀,我看了半天就是有些脑子转不过来了!

最重要的是要求能够使用Query和修改数据呀!迫切要求解决呀!
 
1。在QUERY中写入相关的INSERT或UNDATE语句即可:
如下例为动态生成SQL语句,执行INSERT功能:
query1.close;
query1.sql.clear;
query1.sql.add('insert into mytable(c1,c2..) values(:v1,:v2...)');
query1.parambyname('v1').asstring:=edit1.text;//可换成query1.param[0].asstring:=edit1.text;
query1.parambyname('v2').asinteger:=strtoint(edit2.text);//同上
....
query1.exesql;

修改数据只要改SQL语句
2。你可把用户权限放在一个表中,当A用户时,他有权修改的EDIT等控件
readonly为false或enabled 为true,无权的相反即可
 
非常感谢Sonie,一定会给你多多的分数

实在不行我就要这么做了

我想这么做
我用SQL做数据后台,然后在前台窗口中希望能输入数据!
但是用Query就不能修改添加数据,我看到书上说把RepuestLive设置为True把CanModify改成True,就可以改数据了,但是这样就把数据给锁定,会出错的
所以书上说要设定两个Query,一个管显示,另一个管UpDate,但是讲的太少了,我有点看不懂!

如何在同一个DBGrid来完成显示和更新
 
刚刚看了看Qreport(我可是熬通宵的说),没办法,要做一个该死的Mis系统,
虽然不大,但是我要在放假前做完,现在只剩下五天了,:( ,更要命的是我
才刚刚学delphi,只能多熬夜了。
现在我来说说Qreport的用法吧,因为刚学,说错的还请原谅。
要用Qreport首先要有一个相关的TTable控件,
然后在Qreport里放上一些QrBand控件,通过设置它们的bandtype属性,可以
确定它们在Qreport中的位置,如标题,题头,表内容等。
然后再在QrBand中加上一些qrlabel,qrtext,qrsysdata等控件,
设置它们的相关属性后,就可以了。
比如:要在report中显示表的内容,先设置QrBand的bandtype的属性为rbdetail,
然后在上面放一些qrtext控件,设置好dataset属性和datafield属性,
最后在代码里加上 报表控件的preview或print方法,就可以预览或打印了。
好像说的有点乱,因为我现在很累了。


关于输入的问题,我也同意sonie的方法,我一般也是这样处理的。
 
soine 同我想的一样。呵呵。
 
阿蒙:那我就总算抢了一次先,很多地方我去了发现要说的你们都说了。
mikecool:这样不好,我从来都不让我的dbgrid可编辑,最多是放一个dbgrid浏览
数据,一些dbedit编辑数据,当dbgrid活动时dbedit不能得到焦点,放一个修改键,选中时dbedit激活,但此时dbgrid的enabled一定为FALSE。不然...

但我现在一般不这么做,我只放一个readonly为TRUE的dbgrid浏览数据,其它的编辑框用edit,当dbgrid变化时,edit中的值相应变化,修改、插入数据用存储过程
实现,麻烦一点,但并发和错误控制由服务端提供,我觉得也还值。
 
关于输入的问题,正如Tangqs所言,用query执行sql。若把
query的RepuestLive设置为True来编辑,就会和用Db控件一样,在删、改时易
造成数据库死锁,不利于多人同时工作。
 
saintor:
呵呵,好象答错了地方.
 
Tangqs:
不好意思啦...
 
对表的列设置不同的权限可以通过建立视图,再向视图授权的方式解决
 
继续提问,大虾赶快来呀!

我现在有几张表之间有关联

需要程序自动的从其中的一张表里取出部分的字段数据放入另外几张表

如何写SQL还是需要在Delphi中设定自己来读取和存储?

None,把这个视图授权的方法说清楚点吧,分数不够我有的是!
 
视图的好处之一就是可以通过他灵活地设置权限。

在开发过程中你可以使用权限很大的LOGIN,程序发布后,应该有不同的LONGIN对
应不同的权限。在应用程序中设置权限好比是不锁门而只立个“非请勿入”的牌子
一样,只是花架子。要真正地解决问题应该在数据库上设置权限。好,废话到此
为止。

实际上,使用GRANT语句可以针对列授权,但我觉得通过视图,也是极方便的。强烈
建议MIKECOOL同志阅读关于视图和GRANT语句的帮助及书籍。

不妨把例子MAIL给我,不过仅限于纯数据库问题。为啥?因为俺不懂DELPHI呗!

大哥,给分吧!
 
1)可以用D5中的ado控件,
在他的connectionstring中直接设置
servername,databasename,username等,不用odbc,bde
2)6。5的书上说用视图,7。0好象有变化。
3)Report报表制作?只有看书了,一言难尽。
 
谢谢大家的帮助,如果分数不够我再开一个给,我可以凭良心给的,答的多的给的多
答的给少的。希望大家满意
 
很长时间过去了,为什么还没结束?
 
后退
顶部