查询、添加问题 我在输入按正常的查询都行。。就是在输入框输入单引号' 就报错,我是用SQL拼接进行操作的我知道有一种是传参数进行操作的,但是服务端的限制,而不能用所以只能用拼接请问大侠们,有什么解决方法呢 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用Quotedstrsql.text:='select * from t where f='+Quotedstr(Edit1.Text); 这个不行啊,还是报错---------------------------Feesys---------------------------'代码' 附近有语法错误。.---------------------------确定 --------------------------- 把你的SQL语句SHOW出来,这样比较直观,然后再修改 sql.text:='select * from t where f='''+Quotedstr(Edit1.Text)+''';我是这样子的,然后Edit1.Text=里面的值有单引号,报错,引号不完整 sql.text:='select * from t where f='''+Quotedstr(Edit1.Text)+''';改成sql.text:='select * from t where f='+Quotedstr(Edit1.Text); 网络上的分页存储过程,我还想问一下,2个返回值怎么取出来啊,由于服务端的限制,我只能用TClientDataSet,现在不知怎么取,set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoALTER Proc [dbo].[PageShowOne] @PageSize int=10 ,--每页显示的记录数 @PageCurrent int=1 ,--当前要显示的页号 @FdName varchar(100)='' ,--主键名或者标识列名 @SelectStr varchar(2000)='', --select子句,不包含select关键字,如:*或者Id,UserId,UserName等。 @FromStr varchar(1000)='', --from子句,不包含from关键子,如:myTable或者myTable,yourTable @WhereStr varchar(2000)='', --Where子句,不包含where关键字,如空的,或者 id>2 等 @OrderByStr varchar(1000)='',--order by 子句,不包含order by 子句 ,如id desc,UserId asc 等 @CountRows int=0 output, --返回记录总数 @CountPage int=0 output --返回总页数as--------定义局部变量---------declare @Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号declare @OrderBySqls varchar(1000) --order by 子句declare @WhereSqls varchar(2000) --where 子句declare @Sqls nvarchar(4000) --最终组合成的Sqls语句declare @TmpStr varchar(2000) --临时----------------------------if @OrderByStr <> '' set @OrderBySqls = ' order by '+@OrderByStrelse set @OrderBySqls = ''--------if @WhereStr <> '' set @WhereSqls = ' where ('+@WhereStr+')'else set @WhereSqls = ''--------set @TmpStr = @WhereSqls--如果显示第一页,可以直接用top来完成if @PageCurrent<=1begin select @Id1=cast(@PageSize as varchar(20)) exec('select top '+@Id1+' '+@SelectStr+' from'+@FromStr+@WhereSqls+@OrderBySqls) goto LabelResend---------------------------select @Id1=cast(@PageSize as varchar(20)) ,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20))----------if @WhereSqls <> '' set @WhereSqls = @WhereSqls + ' and (' + @FdName+' not in(select top'+@Id2+' '+@FdName+' from '+@FromStr+@WhereSqls+@OrderBySqls+'))'else set @WhereSqls = ' where ' + @FdName+' not in(select top '+@Id2+''+@FdName+' from '+@FromStr+@WhereSqls+@OrderBySqls+')'----------set @Sqls = 'select top '+@Id1+ ' '+ @SelectStr+' from'+@FromStr+@WhereSqls+@OrderBySqlsexec (@Sqls)-----------LabelRes:-----返回总记录数set @Sqls = 'select @a=count(1) from '+@FromStr+@TmpStrexec sp_executesql @sqls,N'@a int output',@CountRows output-----返回总页数if @CountRows <= @PageSize set @CountPage = 1elsebegin set @CountPage = @CountRows/@PageSize if (@CountRows%@PageSize) > 0 set @CountPage = @CountPage + 1endreturn 如何把两条查询语句合并在一起? dbgrid问题 键盘和鼠标勾子的问题,一直都想不明白!!高手请进!! 数据库更新问题 请帮帮小女子吧 如何将一个字符串写入另一个字符串的指定位置? delphi的自由报表真的没有办法分页打印吗? 随机的优先级问题 放了一天了的一个参数的小问题都没人回答,请大家帮忙,(请帮忙Up).谢谢 如何用delphi实现编辑器的脚本加亮显示??? TStringList.CustomSort 的使用原理? Undeclared identifier: 问题
Feesys
---------------------------
'代码' 附近有语法错误。.
---------------------------
确定
---------------------------
改成
sql.text:='select * from t where f='+Quotedstr(Edit1.Text);
由于服务端的限制,我只能用TClientDataSet,现在不知怎么取,set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
go
ALTER Proc [dbo].[PageShowOne] @PageSize int=10 ,--每页显示的记录数 @PageCurrent int=1 ,--当前要显示的页号 @FdName varchar(100)='' ,--主键名或者标识列名 @SelectStr varchar(2000)='', --select子句,不包含select关键字,如:*或者Id,UserId,UserName等。 @FromStr varchar(1000)='', --from子句,不包含from关键子,如:myTable或者myTable,yourTable @WhereStr varchar(2000)='', --Where子句,不包含where关键字,如空的,或者 id>2 等 @OrderByStr varchar(1000)='',--order by 子句,不包含order by 子句 ,如id desc,UserId asc 等 @CountRows int=0 output, --返回记录总数 @CountPage int=0 output --返回总页数as--------定义局部变量---------declare @Id1 varchar(20),@Id2 varchar(20) --开始和结束的记录号declare @OrderBySqls varchar(1000) --order by 子句declare @WhereSqls varchar(2000) --where 子句declare @Sqls nvarchar(4000) --最终组合成的Sqls语句declare @TmpStr varchar(2000) --临时----------------------------if @OrderByStr <> '' set @OrderBySqls = ' order by '+@OrderByStrelse set @OrderBySqls = ''--------if @WhereStr <> '' set @WhereSqls = ' where ('+@WhereStr+')'else set @WhereSqls = ''--------set @TmpStr = @WhereSqls--如果显示第一页,可以直接用top来完成if @PageCurrent<=1begin select @Id1=cast(@PageSize as varchar(20)) exec('select top '+@Id1+' '+@SelectStr+' from'+@FromStr+@WhereSqls+@OrderBySqls) goto LabelResend---------------------------select @Id1=cast(@PageSize as varchar(20)) ,@Id2=cast((@PageCurrent-1)*@PageSize as varchar(20))----------if @WhereSqls <> '' set @WhereSqls = @WhereSqls + ' and (' + @FdName+' not in(select top'+@Id2+' '+@FdName+' from '+@FromStr+@WhereSqls+@OrderBySqls+'))'else set @WhereSqls = ' where ' + @FdName+' not in(select top '+@Id2+''+@FdName+' from '+@FromStr+@WhereSqls+@OrderBySqls+')'----------set @Sqls = 'select top '+@Id1+ ' '+ @SelectStr+' from'+@FromStr+@WhereSqls+@OrderBySqlsexec (@Sqls)-----------LabelRes:-----返回总记录数set @Sqls = 'select @a=count(1) from '+@FromStr+@TmpStrexec sp_executesql @sqls,N'@a int output',@CountRows output-----返回总页数if @CountRows <= @PageSize set @CountPage = 1elsebegin set @CountPage = @CountRows/@PageSize if (@CountRows%@PageSize) > 0 set @CountPage = @CountPage + 1endreturn