個人檔案温柔的星空部落格清單 工具 說明
5月6日

存储过程解决分页

利用SQL的游标存储过程分页
create procedure SeparatePage
@sqlstr nvarchar(4000), --查询字符串
@currentpage int, --第N页
@pagesize int --每页行数
as
set nocount on
declare @P1 int, --P1是游标的id
@rowcount int
exec sp_cursoropen @P1 output,@sqlstr,@scrollopt=1,@ccopt=1,@rowcount=@rowcount output
select ceiling(1.0*@rowcount/@pagesize) as 总页数--,@rowcount as 总行数,@currentpage as 当前页
set @currentpage=(@currentpage-1)*@pagesize+1
exec sp_cursorfetch @P1,16,@currentpage,@pagesize
exec sp_cursorclose @P1
set nocount off

编码问题之~

<cfprocessingdirective pageencoding="utf-8">
<cfcontent type="text/html; charset=utf-8">
<cfset setEncoding("URL", "utf-8")>
<cfset setEncoding("Form", "utf-8")>

国际化资料

<!--- zh.txt 和 en.txt 的方式应用以下代码实现国际化 --->
<!--- 读取文本内容 --->
<cffile action="read" file="#expandpath('./') & 'zh.txt'#" variable="LangText">
<cfscript>
// 设置注释正则
REG = "<!---[^>]*--->";
// 去除所有<!--- --->模式的注释内容,并将结果转变为数组
arr = ListToArray(ReReplace(LangText,REG,"","all"));
// 将数据进行循环,重组为一个新的二维数组结构
for(i = 1; i lte arraylen(arr); i = i + 1) {
  for (j = 1; j lte listlen(arr[i],":"); j = j + 1) {
   lang[i][j] = Trim(ListGetAt(arr[i],j,":"));  
  }
}
// 遍历二维数组结构,将第二维数据变量赋值于第一维内容
// 利用该操作可以直接引用第一维名称而获取第二维变量
// 设置为request或是application全局变量可以在全局引用这些变量
for(i = 1 ; i lte arraylen(Lang); i = i + 1) {
  "request.#lang[i][1]#" = lang[i][2];
}
// 删除原来读取文本的Lang文本内容变量
structDelete(variables,"LangText");
</cfscript>

用代码操作Administrator资料

<cfscript>
    adminObj = createObject("component","cfide.adminapi.administrator");
    adminObj.login("您administrator的密码");
    // Instantiate the data source object.
    myObj = createObject("component","cfide.adminapi.datasource");
    // Create a DSN.
    myObj.setMSAccessUnicode (driver="MSAccessJet",
    name="数据源名字",
    databasefile = "数据库path",
    class="com.inzoom.jdbcado.Driver",
    login_timeout = 29,
    timeout = 23,
    interval = 6,
    buffer = "64000",
    blob_buffer = "64000",
    setStringParameterAsUnicode = "false",
    description = "数据库描述",
    enableMaxConnections = "true",
    maxConnections = "299",
    disable = false,
    storedProc = true,
    alter = false,
    grant = true,
    select = true,
    update = true,
    create = true,
    delete = true,
    drop = false,
    revoke = false );
</cfscript>
<!--- 下面是在cf6以下版本中实现代码 --->
<cfset dbq="e:\coldfusion.mdb">//数据库path
<cfset driver="{MicroSoft Access Driver (*.mdb)}">//事件驱动
<cfset initDriver=createObject("java","java.lang.Class").forName("sun.jdbc.odbc.JdbcOdbcDriver").newInstance()>
<cfset strURL = "jdbc:odbc:Driver=#driver#;DBQ=#dbq#">
<cfset conn=createObject("java","java.sql.DriverManager").getConnection(strURL)>
<cfset stmt = conn.createStatement()>
<cfset query = stmt.executeQuery("select * from blog_article")>
<cfloop condition="query.next()">
<cfoutput>
#query.getString("Log_ID")# - #query.getString("Log_title")# - #query.getString("Log_intro")#<br>
</cfoutput>
</cfloop>
<cfset query.close()>

分页demo

<cfset CurrentPage=GetFileFromPath(GetTemplatePath())>
<cfparam name="PageNum_art" default="1">
<!--- 这个分页程序需要修改 queryName 和 datasource --->
<cfquery name="art" datasource="BusinessPower">
SELECT * FROM provider
</cfquery>
<cfset MaxRows_art=2>
<cfset StartRow_art=Min((PageNum_art-1)*MaxRows_art+1,Max(art.RecordCount,1))>
<cfset EndRow_art=Min(StartRow_art+MaxRows_art-1,art.RecordCount)>
<cfset TotalPages_art=Ceiling(art.RecordCount/MaxRows_art)>
<cfset QueryString_art=Iif(CGI.QUERY_STRING NEQ "",DE("&"&XMLFormat(CGI.QUERY_STRING)),DE(""))>
<cfset tempPos=ListContainsNoCase(QueryString_art,"PageNum_art=","&")>
<cfif tempPos NEQ 0>
  <cfset QueryString_art=ListDeleteAt(QueryString_art,tempPos,"&")>
</cfif>
<table border="0">
  <tr>
    <th scope="col">providerId</th>
    <th scope="col">providerName</th>
  </tr>
  <cfoutput query="art" startrow="#StartRow_art#" maxrows="#MaxRows_art#">
    <tr>
      <td>#art.providerId#</td>
      <td>#art.providerName#</td>
    </tr>
  </cfoutput>
</table>
<p> [<a href="<cfoutput>#CurrentPage#?PageNum_art=1#QueryString_art#</cfoutput>">&lt;&lt; First</a>] [<a href="<cfoutput>#CurrentPage#?PageNum_art=#Max(DecrementValue(PageNum_art),1)##QueryString_art#</cfoutput>">&lt; Previous</a>] [<a href="<cfoutput>#CurrentPage#?PageNum_art=#Min(IncrementValue(PageNum_art),TotalPages_art)##QueryString_art#</cfoutput>">Next &gt;</a>] [<a href="<cfoutput>#CurrentPage#?PageNum_art=#TotalPages_art##QueryString_art#</cfoutput>">Last &gt;&gt;</a>] </p>
4月22日

Java to CF

到了家新公司,已经学Cold Fusion两个多星期了,基础算是入门了,可是比在学Java时空虚了好多,感觉缺少一些技术含量,之后又去学AJAX,又有了新的挑战,学完AJAX又会怎样呢,前面的路越来越渺茫了