易截截图软件、单文件、免安装、纯绿色、仅160KB

数据库组件 Hxj.Data (十) (输出组件执行的sql)

前面有TX留言问分页的sql是怎么样的,看完这篇你也就知道了。 组件可以输出执行的sql,方便查看sql生成的语句是否有问题。 通过注册事件来输出sql DbSession.Default.RegisterSqlLogger(database_OnLog);
 
private string sql;
void database_OnLog(string logMsg)
{
//保存执行的DbCommand (sql语句和参数)
sql += "
" + logMsg;
}
 
然后通过执行
DbSession.Default.UnregisterSqlLogger(database_OnLog);
来注销注册的事件。
 
这里是例子是asp.net

DbSession.Default.from()
.InnerJoin(Suppliers._.SupplierID == Products._.SupplierID)
.Page(10, 2)
.Select(Products._.ProductID, Products._.ProductName)
.ToDataTable();

执行上面的语句输出的sql语句如下:
SELECT * from
( SELECT TOP 10 * from
( SELECT TOP 20 [Products].[ProductID],[Products].[ProductName]
from [Products]
INNER JOIN [Suppliers]
ON ([Suppliers].[SupplierID] = [Products].[SupplierID])
ORDER BY [Products].[ProductID] ASC) AS tempIntable
ORDER BY [ProductID] DESC) AS tempOuttable
ORDER BY [ProductID] ASC
 

再来一个
DbSession.Default.from().Where(Products._.CategoryID == 2).ToFirst();

生成的sql语句如下
Text:
SELECT TOP 1 * from [Products] WHERE [Products].[CategoryID] = @ae2b9c6a112545e5b56fa6dc70f32ac1 Parameters:
@ae2b9c6a112545e5b56fa6dc70f32ac1[Int32] = 2

这下组件生成的sql语句可以一目了然了,sql语句的输出也大大方便了调试。
 
 
下一节将讲述WhereClip(条件)的生成。




相关文档:

SQL测试 交集、并集、差集、笛卡尔积

并集:
使用 UNION 运算符组合多个结果
SELECT name,num from Table1
UNION
SELECT name,num from Table2
注意:查询的字段个数必须相同,Table2的字段类型要跟Table1的相同.
如果使用 UNION 运算符,那么单独的 SELECT 语句不能包含其自己的 ORDER BY 或 COMPUTE 子句。只能在最后一个 SELECT 语句的后面使用一个 ORD ......

SQL 语句练习


–1、查找员工的编号、姓名、部门和出生日期,如果出生日期为空值,显示日期不详,并按部门排序输出,日期格式为yyyy-mm-dd。
select emp_no,emp_name,dept,isnull(convert(char(10),birthday,120),’日期不详’) birthday
from employee
order by dept
–2、查找与喻自强在同一个单位的员工姓名、 ......

向sql数据库中插入空时间报系统错误的解决方法

数据库表设计时如果设置可以为null,则它就不会变为'1900-1-01'  
  如果设计时不可以为null,它就会默认为:   '1900-01-01'
CREATE proc UP_Rsk_AddModel  @ygcode varchar(6),  @name varchar(8),  @xb varchar(2),  @bm varchar(32),  @jg varchar(16),  @mz varchar(16) ......

SQL 2000用户自定义函数

一。SQL Server 的三种自定义函数
“自定义函数”是我们平常的说法,而“用户定义的函数”是 SQL Server 中书面的说法。
SQL Server 2000 允许用户创建自定义函数,自定义函数可以有返回值。
自定义函数分为:标量值函数或表值函数
如果 RETURNS 子句指定一种标量数据类型,则函数为标量值函数。可 ......

数据批量导入远程SQL服务器的亲身实践

  目的:将数据批量导入远程服务器
  环境:SQL软件,EXCEL软件,VS2005软件,本地两个机器上都有SQL数据库,而且数据存放在其中一个表。
  操作实践
  1、用远程数据库的ip、用户名、密码在本地登录;
  2、结果,其中一个机器能登录,一个不能登录(以下操作在可登录的机器上完成);
  3、第一次我想通 ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号