这阵子一直没有发布新的日志.工作中一直开发一个项目.我把项目迁移回家时出现了一个问题.

页面与sql进行多次通信是就会很慢.很简单的一个页面搞了30多秒还没有显示出来.当时以,IIS, 伪静态, 程序, windows系统 进行排查.找原因.为什么没有考虑到sql2005尼.我在SQL里查询测试了很快,也不没有去考虑它.找了一圈的原因后来还是不行.系统也还原了.无耐我从新安装WINDOWS 2008.下面安装SQL2005.这时查询机器配置时提示一个警告.这项就是IIS.我想不为吧.以前安装好像不会提示这个警告的.这次小心的没有接着安装.把SQL 2008解压出来后安装.

下面结果很显然.的确是SQL 2005的问题.SQL 2008下面页面跑的唰唰的.

Windows 2008下成功配置Iis+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin
Windows 2003下成功配置Iis+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin这往篇文章发表后被不少人转载。都是改头换面。除了准备软件下载URL中出现cngothic外。其它地方都被删除。那些个网络流氓真够无耻的。
windows 2008 与 windows 2003 区别在于前者是iis7,后者是iis6。两个系统下配置Iis+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin基本相同。点击查看Windows 2003下成功配置Iis+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin
下面来仔细说明下 Windows 2008下成功配置Iis+Php+Mysql+Zend Optimizer+GD库+Phpmyadmin 的另一种方法。使用映射模块:FastCgiModule 来实现。
一:准备所需软件
1:mysql-5.0.18-win32
2:php-5.2.4-Win32.zip
3:mysqlcc-0.9.4-win32
4:phpMyAdmin-2.11.1-all-languages
5:ZendOptimizer-3.2.6-Windows-i386

二:开始配置Php

1:将php-5.2.4-Win32.zip解压后命名为Php.复制到 C:\ 下.
2:将C:\php 与 C:\php\ext 所有*.dll文件复制到 C:\WINDOWS\system32 下并覆盖.
3:将 C:\php 下的 php-win.exe,php.ini-dist,php.exe 三个文件复制到 C:\WINDOWS 并重命名 php.ini-dist 为 php.ini
4:开始-运行-inetmgr:打开iis7后。选择左侧起始页下面的IIS服务器。此IIS服务器可以展开。里面有各个站点这个不用管它。此时配置全局IIS,所以选择IIS服务器。在右侧区域有显示出来很多带图标功能项。双击处理程序映射项。选择右侧操作中的添加模块映射。
请求路径:*.php
模块:FastCgiModule
可执行文件:C:\Php\php-cgi.exe
名称:FastCGI-PHP (自定义)
开始-运行-iisreset
此时已经可以运行php程序了。
Read the rest of this entry »

, ,

sql存储过程:通用删除数据
经过修改利用上了事务.对于ASP开发时获取输出参数的值来判断是否执行成功

有哪些地方没有处理好的
请大侠纠正

  1. */ ------------------------------------------------------------
  2. */ 出自: 歌特中国 http://www.cngothic.com
  3. */ 作者: cngothic
  4. */ ------------------------------------------------------------
  5. CREATE PROC DeleteTable
  6.   @tableName     NVARCHAR(30),
  7.   @whereStr      NVARCHAR(500)  = NULL,
  8.   @groupStr      NVARCHAR(50) = NULL,
  9.   @deleteNum     smallInt   OUTPUT
  10. AS
  11.   DECLARE @sqlStr  NVARCHAR(1000)
  12.   SET @sqlStr = 'DELETE FROM ' + @tableName
  13.   if (@whereStr != '')
  14.     BEGIN
  15.       SET @sqlStr = @sqlStr + ' WHERE ' + @whereStr
  16.     END
  17.   if (@groupStr != '')
  18.     BEGIN
  19.       SET @sqlStr = @sqlStr + ' GROUP BY ' + @whereStr
  20.     END
  21.  
  22.   BEGIN TRANSACTION
  23.     EXEC(@sqlStr)
  24.     IF @@error=0
  25.       BEGIN
  26.         COMMIT TRANSACTION
  27.         SET @deleteNum = 1
  28.       END
  29.     ELSE
  30.       BEGIN
  31.         ROLLBACK TRANSACTION
  32.         SET @deleteNum = 0
  33.       END
  34.  
  35. GO

, , , , ,

sql存储过程:通用写入更新数据
经过再次僚属纠正了些错误.也采用了事务来操作

有哪些地方没有处理好的
请大侠纠正

  1. */ ------------------------------------------------------------
  2. */ 出自: 歌特中国 http://www.cngothic.com
  3. */ 作者: cngothic
  4. */ ------------------------------------------------------------
  5. CREATE PROC AddUpTable
  6.   @tableName      NVARCHAR(50),
  7.   @fileName       NVARCHAR(1000),
  8.   @fileCount      VARCHAR(8000),
  9.   @addUpYN        BIT,
  10.   @whereStr       NVARCHAR(1000) = NULL,
  11.   @groupStr       NVARCHAR(1000) = NULL,
  12.   @inUpdateNum    SmallInt   OUTPUT
  13. AS
  14.   declare   @sqlStr   VARCHAR(8000)
  15.   declare   @startFileName    INT
  16.   declare   @endFileName      INT
  17.   declare   @startFileCount   INT
  18.   declare   @endFileCount     INT
  19.   IF @addUpYN = 1
  20.     BEGIN
  21.       SET @sqlStr = 'INSERT INTO ' + @tableName + ' (' + @fileName + ') VALUES (' + @fileCount + ')'
  22.     END
  23.   ELSE
  24.     BEGIN
  25.       SET @fileName = @fileName + ','
  26.       SET @fileCount = @fileCount + '|||'
  27.       SET @sqlStr = 'UPDATE ' + @tableName
  28.       SET @startFileName = 1
  29.       SET @startFileCount = 1
  30.       SET @endFileName = CHARINDEX(',', @fileName, @startFileName)
  31.       SET @endFileCount = CHARINDEX('|||', @fileCount, @startFileCount)
  32.       SET @sqlStr = @sqlStr + ' SET '
  33.       WHILE (@endFileName <> 0)
  34.         BEGIN
  35.           SET @sqlStr = @sqlStr + SUBSTRING(@fileName, @startFileName, @endFileName-@startFileName) + '='
  36.           SET @startFileName = @endFileName + 1
  37.           SET @endFileName = CHARINDEX(',', @fileName, @startFileName)
  38.  
  39.           SET @sqlStr = @sqlStr + '''' + SUBSTRING(@fileCount, @startFileCount, @endFileCount-@startFileCount) + ''','
  40.           SET @startFileCount = @endFileCount + 3
  41.           SET @endFileCount = CHARINDEX('|||', @fileCount, @startFileCount)
  42.         END
  43.         SET @sqlStr = SUBSTRING(@sqlStr, 1, LEN(@sqlStr)-1)
  44.         IF (@whereStr != '')
  45.           BEGIN
  46.             SET @sqlStr = @sqlStr + ' WHERE ' + @whereStr
  47.           END
  48.          IF (@groupStr != '')
  49.           BEGIN
  50.             SET @sqlStr = @sqlStr + ' GROUP BY ' + @groupStr
  51.           END
  52.    END
  53.   PRINT @sqlStr
  54.   BEGIN TRANSACTION
  55.     EXEC(@sqlStr)
  56.     IF @@error=0
  57.       BEGIN
  58.         COMMIT TRANSACTION
  59.         SET @inUpdateNum = 1
  60.       END
  61.     ELSE
  62.       BEGIN
  63.         ROLLBACK TRANSACTION
  64.         SET @inUpdateNum = 0
  65.       END
  66.  
  67.  
  68. GO

, , , ,