社区
数据库相关
帖子详情
在线等:delphi 中,如何得到SQL的当前用户ID
bosshoss
2003-05-04 03:22:00
在SQL中有这个user_id(user)可以得到当前用户的ID,但我想在DELPHI中得到这个ID,如何写SQL语句,如何反回值!
...全文
35
3
打赏
收藏
在线等:delphi 中,如何得到SQL的当前用户ID
在SQL中有这个user_id(user)可以得到当前用户的ID,但我想在DELPHI中得到这个ID,如何写SQL语句,如何反回值!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
3 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
bosshoss
2003-05-04
打赏
举报
回复
谢谢,给分给分
bosshoss
2003-05-04
打赏
举报
回复
先试试,谢谢!我是用BDE的,应该一样
linzhisong
2003-05-04
打赏
举报
回复
adoquery1.sql.text:='select user_id(user)'
adoquery1.open;
adoquery1.Fields[0].asstring;就是想要的值!
LECCO
SQL
Expert (智能自动
SQL
优化)
更优更快 人工智能自动
SQL
优化----------http://www.sina.com.cn 2001/12/12 17:48
中
国电脑教育报文/
SQL
爱好者 所谓
SQL
,就是指Structured Query Language(结构化查询语言),它是目前使用最广泛的数据库语言,用来和数据库打交道,从数据库
中
得到
用户
需要的数据。但是要想熟练使用
SQL
语句,也不是一件简单的事,有些语句使用起来也比较麻烦。如果我们对
SQL
语句进行优化,那么
用户
使用起来 就会方便许多。 简单来说,
SQL
语句的优化就是将性能低下的
SQL
语句转换成达到同样目的的性能优异的
SQL
语句。人工智能自动
SQL
优化就是使用人工智能技术,自动对
SQL
语句进行重写,找到性能最好的等效
SQL
语句。 人工智能自动
SQL
优化 随着人工智能技术的发展和在数据库优化领域应用的深入,在20世纪90年代末终于出现了突破性的进展——人工智能自动
SQL
优化。目前在商用数据库领域LECCO TechnologyLimited(灵高公司)拥有该技术并提供使用该技术的自动优化产品——LECCO
SQL
Expert,其支持Oracle、Sybase、MS
SQL
Server和IBMDB2数据库平台。该产品针对数据库应用的开发和维护阶段提供了几个特别的模块:
SQL
语法优化器、PL/
SQL
集成化开发调试环境(
ID
E)、扫描器、数据库监视器等。图1 人工智能自动
SQL
优化示意图 其核心模块之一“
SQL
语法优化器”的工作原理大致如下(如图1): 一条源
SQL
语句输入→“人工智能反馈式搜索引擎”对输入的
SQL
语句结合检测到的数据库结构和索引进行重写,产生N条等效的
SQL
语句输出→产生的N条等效
SQL
语句再送入“人工智能反馈式搜索引擎”进行重写,直至无法产生新的输出或搜索限额满→对 输出的
SQL
语句进行过滤,选出具有不同执行计划的
SQL
语句(即不同的执行效率)→对
得到
的
SQL
语句进行批量测试,找出性能最好的
SQL
语句。图2 优化前的
SQL
语句 自动优化实例 假设我们从源代码
中
抽取出这条
SQL
语句(如图2): SELECTCOUNT(*)FROMEMPLOY-EE WHEREEXISTS(SELECT'X'FROM DEPARTMENTswheresEMP_DEPT=DPT_
ID
AND DPT_NAME LIKE'AC%')AND EMP_
ID
IN(SELECT SAL_EMP_
ID
FROM EMP_SAL_HISTB WHERESAL_SALARY>70000) 按“优化”按钮后,经过十几秒,
SQL
Expert就完成了优化的过程,从优化细节
中
可以看到,它在十几秒的时间内重写产生了2267条等价的
SQL
语句,其
中
136条
SQL
语句有不同的执行计划(如图3)。图3 优化结果 接下来我们可以对自动重写产生的136条具有不同执行计划的
SQL
语句进行批运行测试,以选出性能最佳的等效
SQL
语句。按下“批运行”按钮,在“终止条件”页选择“最佳运行时间
SQL
语句”(如图4),按“确定”。图4 测试条件 经过几分钟的测试运行后,我们可以发现
SQL
124的运行时间和反应时间最短。运行速度约有22.75倍的提升(源
SQL
语句运行时间为2.73秒,
SQL
124运行时间为0.12秒,如图5)。图5 测试结果 我们把
SQL
124放入源代码
中
,结束一条
SQL
语句的优化工作。从上例可以看到,LECCO
SQL
Expert的自动重写技术使原来需要几小时才能完成的
SQL
语句的优化工作,缩减到几分钟之内就可以完成。数据库管理员和开发人员可以从繁重的
SQL
语句优化工作
中
解脱出来。 边做边学式训练 LECCO
SQL
Expert不仅能够找到最佳的
SQL
语句,而且提供的“边做边学式训练”还能够教会开发人员和数据库管理员如何写出性能最好的
SQL
语句。LECCO
SQL
Expert的“
SQL
比较器”可以标明源
SQL
和待选
SQL
之间的不同之处。LECCO
SQL
Expert详尽的上下文敏感帮助系统可以指出执行计划的深层含义。图6 源语句与
SQL
124的比较 以上面优化的结果为例,为了查看源
SQL
语句和
SQL
124在写法上的不同,我们可以按下“比较器”按钮,对
SQL
124和源
SQL
语句进行比较。如果选择“双向比较”复选框,“
SQL
比较器”可以将两条互相间的不同之处以蓝色表示。当然,你也可以从 源语句和重写后的
SQL
语句
中
任选两条进行比较(如图6)。 从比较的结果可以看到,重写
得到
的
SQL
124把第一个Exists改写成了In;在字段DPT_
ID
上进行了合并空字符串的操作以诱导数据库先执行子查询
中
的(SELECTDPT_
ID
||'FROMDEPART-MENTWH
Delphi
开发者资源社区 V1.0
简介:
“
Delphi
开发者资源社区”源码 V1.0
左轻侯
2001.10.9
Email:onekey@163.com
社区地址:http://
delphi
.mychangshu.com
个人主页:http://onekey.yeah.net
本社区使用ASP+ACCESS 2000开发,可以很方便地升级到MS
SQL
SERVER。
代码未经整理,有很多不规范的地方,仅供参考,请自己注意。有些计划
中
的功能尚未完成,但不影响使用。
如果你发现漏洞,请通知我,不要来黑啊,呵呵。这是一个程序员交流的地方,请爱护它。
功能:
二级分类目录;
WEB方式的文件上传;
作品评论;
下载计数和排行榜;
多种方式排序和查找;
WEB方式的社区维护;
内置一个文本计数器;
内置一个树型结构的论坛。
使用了稻香老农的文件上传代码(ASP实现,无须第三方组件),特此致谢。必须在Windows2000下使用。
记得将exdata.mdb放到一个没有下载权限的目录
中
,并修改config
中
的strConnString。否则别人可以简单地将整个数据库下载下来。
初始
用户
:
id
:admin password:admin
压缩包
中
的“树型结构的快速算法.txt”文件,描述了本社区论坛的实现思路。
Delphi
XE10零基础实战快速入门
通过课堂上一个一个的实战例子,演示
Delphi
XE10的用法,最后通过一个完整的通讯录程序,让学员初步掌握软件开发的全部流程 让零基础学员快速入门
Delphi
编程,快速掌握
Delphi
的使用方法,并能够制作出自己的软件来。...
绿色
Sql
Server 原理及全新管理工具
几天前在盒子看到绿色
Sql
server很高兴,现将本人对绿色
SQL
Server的现实思路作一说明,不正确的地方还请指教。1.
Sql
servr.exe 运行参数。
Sql
Server的启动可以为Windows服务方式(默认),也可以以应用程序方式启动。下面介绍
sql
servr.exe以应用程序方式启动时的参数问题。
sql
servr 应用程序用法:
sql
servr [-sinstance_name] [-c] [-dmaster_path] [-f] [-eerror_log_path] [-lmaster_log_path] [-m] [-n] [-Ttrace#] [-v] [-x] [-g number] [-O] [-y number]-sinstance_name 指定要连接到的
SQL
Server 实例。如果未指定命名实例,
sql
servr 将启动
SQL
Server 默认实例。重要 启动
SQL
Server 实例时,必须从实例所在的适当目录使用
sql
servr 应用程序。对于默认实例,从 MS
SQL
Binn 目录运行
sql
servr。对于命名实例,在 MS
SQL
$instance_nameBinn 目录运行
sql
servr。-c 表示以独立于 Windows NT 服务控制管理器的方式启动
SQL
Server 实例。当从命令提示符下启动
SQL
Server 时,可使用该选项缩短启动
SQL
Server 的时间。(注意:当使用该选项时,无法通过使用
SQL
Server 服务管理器或 net stop 命令停止
SQL
Server,而且如果已从 Microsoft Windows NT? 系统注销,则
SQL
Server 将停止运行。)-dmaster_path指出 master 数据库文件的完全合法路径。在 -d 和 master_path 之间没有空格。-f以最小配置模式启动服务器。然后,系统管理员可对配置选项重新配置(使用 sp_configure 系统存储过程)。-eerror_log_path表示错误日志文件的完全合法路径。如果未指定路径,则默认实例的默认位置是 x:Program FilesMicrosoft
SQL
ServerMS
SQL
LogErrorlog,命名实例的默认位置是 x:Program FilesMicrosoft
SQL
ServerMS
SQL
$instance_nameLogErrorlog。在 -e 和 error_log_path 之间没有空格。-lmaster_log_path指示 master 数据库事务日志文件的完全合法路径。在 -l 和 master_log_path 之间没有空格。-m表示在单
用户
模式下启动
SQL
Server 实例。如果
SQL
Server 是以单
用户
模式启动的,则只能连接一个
用户
。CHECKPOINT 机制(它确保完成的事务定期从磁盘高速缓存写入数据库设备
中
)将不启动。(一般情况下,如果您遇到需要修复的系统数据库问题时,可使用此选项。)-n表示您不想使用 Windows NT 应用程序日志来记录
SQL
Server 事件。如果用 -n 选项启动
SQL
Server 实例,则最好也使用 -e 选项,否则将不会记录
SQL
Server 事件。-Ttrace#表示应使用指定的有效跟踪标记 (trace#) 来启动
SQL
Server 实例。跟踪标志用来启动具有非标准行为的服务器。有关可用跟踪标记 (trace#) 的更多信息,请参见跟踪标记。重要 当指定跟踪标志时,请使用 –T 来传递跟踪标志号。
SQL
Server 接受小写字母 t (-t);然而,-t 还设置
SQL
Server 支持工程师所需的其它内部跟踪标记。-v显示服务器的版本号。-x禁用维护 CPU 统计。-g memory_to_reserve指定内存的兆字节整数,该内存被保留下来用于
SQL
Server 2000 内部(进程内)运行的其它应用程序。-O指定不需要分布式 COM (DCOM),从而禁用异类查询。-y error_number如果
SQL
Server 2000 遇到在该选项
中
指定的错误信息,它将把表象堆栈跟踪写入错误日志。可以使用多个 –y 参数指定多个错误。2. 系统数据库路径问题. 一般情况下,正常安装
sql
server之后,master等系统数据库的路径都是被设置为绝对路径,如果要改正数据库的路径为相对路径,可以使用以下
SQl
语句:
sql
:=format(' update sysaltfiles set filename='%s' where filename='%s' ', ['...data'+extractfilename(MDFFile),MDFFile]); ADOQuery1.Close; ADOQuery1.
SQL
.Text:=
sql
; ADOQuery1.Exec
SQL
;
sql
:=format(' update sysaltfiles set filename='%s' where filename='%s' ', ['...data'+extractfilename(LogFile),LogFile]); ADOQuery1.Close; ADOQuery1.
SQL
.Text:=
sql
; ADOQuery1.Exec
SQL
;
sql
:=Format('update sysdatabases set filename='%s' where name='%s'', ['...data'+extractfilename(MDFFile),Edit1.text]); ADOQuery1.Close; ADOQuery1.
SQL
.Text:=
sql
; ADOQuery1.Exec
SQL
;大家打开sysaltfiles 表和sysdatabases 一看就知道了,不多说了。除了系统数据库,其它的数据库也可以使用这种方法修改为相对路径。 使用相对路径的好处是可以让你的绿色
Sql
server随时copy到任意目录或是任意其它机器上启动,并且原来的数据库全部可以使用,如果是绝对路径到了其它机器就不行了。3. 注册表问题: 大家可以看下面的注册表文件Windows Registry Editor Version 5.00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$name][HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
Server]"AuditLevel"=dword:00000000"DefaultLogin"="guest""ListenOn"=hex(7):53,00,53,00,4d,00,53,00,53,00,48,00,37,00,30,00,00,00,53,00, 53,00,4e,00,45,00,54,00,4c,00,49,00,42,00,00,00,00,00"LoginMode"=dword:00000000"Map_"="""Map#"="-""Map$"="""SetHostName"=dword:00000000"Tapeloadwaittime"=dword:ffffffff"uptime_p
id
"=dword:00001044"uptime_time_utc"=hex:26,57,c8,b3,fb,bb,c5,01[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
ServerCurrentVersion]"CurrentVersion"="8.00.194""RegisteredOwner"="""SerialNumber"="""CSDVersionNumber"=dword:00000300"CSDVersion"="8.00.761""Language"=dword:00000804"checksum"=hex:37,35,32,32,63,31,35,38,61,65,37,64,34,63,64,37,35,30,64,61,30, 33,34,62,37,64,63,32,30,61,36,36,39,37,62,34,61,35,65,36,63,66,62,61,38,37, 39,36,37,31,66,33,39,61,36,65,35,64,30,33,37,36,37,65,64,36,33,30,61,39,63, 36,66,37,36,30,35,65,32,66,34,66,31,33,63,39,33,63,34,66,62,66,34,66,64,38, 64,65,36,64,35,34,37,33,35,39,35,32,36,63,61,32,36,63,33,32,64,34,36,33,65, 36,39,34,30,65,61,37,64,35,30,61,66,34,64,32,66,38,37,36,30,61,39,64,30,61, 32,36,64,65,66,66,00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
ServerParameters][HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
ServerSuperSocketNetLib]"ProtocolList"=hex(7):74,00,63,00,70,00,00,00,6e,00,70,00,00,00,00,00[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
ServerSuperSocketNetLibNp]"PipeName"="\.pipeMS
SQL
$$name
sql
query"[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameMS
SQL
ServerSuperSocketNetLibTcp]"TcpH
id
eFlag"=dword:00000000"TcpDynamicPorts"="$port""TcpPort"="$port"[HKEY_LOCAL_MACHINESOFTWAREMicrosoftMicrosoft
SQL
Server$nameSetup]"FeatureName"="
Sql
Run""FirstStart"=dword:00000000"ProductCode"="{E09B48B5-E141-427A-AB0C-D3605127224A}""
SQL
DataRoot"="$path""
SQL
Path"="$path"这是注册一个
Sql
Server实例所要使用的注册表,把里面的$name,$path,$port替换成你定义的实例名,
当前
程序所有路径,监听端口,然后导入注册表就可以了。4. 启动
Sql
Server iPath:=ExtractFilePath(Application.ExeName); CommandLine:=PChar(iPath+'binn
sql
servr.exe -d...datamaster.mdf -l...datamastlog.ldf -e...Loglog.txt+Edit1.Text); CreateProcess( nil, CommandLine, nil, nil, true, CREATE_NO_WINDOW, nil, PChar(iPath+'binn'), StartupInfo, ProcessInformation )也可以直接写个.bat运行就ok了.5. 启动日志问题。 这个问题最简单,因为在执行
sql
servr.exe时指定的有log文件,你只用用个定时器(50ms)读文件,就可以在程序
中
显示出来启动日志了,呵呵,这只是个思想,具体的自已想办法吧. 6. 停止服务 用CreateProcess可以
得到
进程
ID
,TerminateProcess就关了
sql
server进程,服务就停了,简单吧。根据上面的6个步骤,你就可以自已搞定一个绿色的
Sql
Server了.并且你可以根据不同的
sql
server版本,整理出所有版本的绿色
sql
server。绿色
sql
server 企业版绿色
sql
server 个人版绿色 MSDE... ...这样以后遇到什么操作系统都全部搞定。 最后说一句,只要你能把几个
Sql
server版本的数据整理好(主要是系统数据库的路径问题(好像现在盒子已经有绿色企业版的文件了),DLL全部copy就OK了),都可以使用我的管理工具进行管理,呵呵,当然你也可以作出自已的管理器。我的管理器,主要是为了我自已用,大家如果用着可以,请多提意见。由于
sql
server数据太大,并且盒子上已经有了,这次只上传了exe和目录结构。不知道说的是否正确,如果还有什么问题,我们一起交流. Email: 11826088@163.com
SQL
提取数据库表名及字段名等信息代码示例
本文向大家介绍了使用
SQL
语句提取数据库所有表的表名、字段名的实例代码,在
SQL
server
中
进行了测试,具体内容如下: --查询所有
用户
表所有字段的特征 SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name, COLUMNPROPERTY(A.
ID
,A.Name, 'Is
Id
entity') AS Is
Id
entity, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysobjects WHERE Xtype = 'PK' AND Name IN (SELECT Nam
数据库相关
2,498
社区成员
88,444
社区内容
发帖
与我相关
我的任务
数据库相关
Delphi 数据库相关
复制链接
扫一扫
分享
社区描述
Delphi 数据库相关
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章