jim97的blog
jim97的blog
<2010年3月>
28123456
78910111213
14151617181920
21222324252627
28293031123
45678910

留言簿(12)

随笔分类

随笔档案

文章分类

文章档案

相册

收藏夹

人才网信息

公共信息资源网站

友人链接

搜索

最新评论

阅读排行榜

评论排行榜

 
VC知识库BLOG   首页  新随笔  联系  聚合  登录 
  随笔-18 文章-37 评论-48 Trackbacks-0
2007年11月23日

     性能课题
1.大厂采用厂共享时信息时,SsP(SHARE server PRODIVER)
2.调试WSSDW.EXE 调用 MOSS

3. INDEX 服务 ,不同厂之间SERACH 目前采用WEB SERVER
   企业 SERACHAR 考虑:范围,条件,安全
    INDEX-->FOLDER 建立FOLDER 很重要。
       
ssp 32 bit 不能引用 ssp 64bit 提供服务


sps做OA : 1、提供松散工作区
      2. KB/Search
      3.client(OBA)
      4.VSS2005 中做USERCONTROL -->WORD

ECM: 内容管理
     ECM+RMS+RC 构建内容、容器管理

EPM

BI

POTAL
SEARCHAR : 支持客户端中产品,如WORD EXCEL 直接SERACH
           安全、过滤等功能

isgolen@hotmail.com 王刚

发表于 2007-11-23 09:28 木子的blog 阅读(2853) | 评论 (1)编辑 收藏
2007年6月4日

Sql 存储过程
Net 中多语言版本测试!

发表于 2007-06-04 19:57 木子的blog 阅读(3556) | 评论 (2)编辑 收藏
2007年5月10日
对路径“C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322\Temporary ASP.NET Files\root\7bc8d69f\e3d704c8”的访问被拒绝。

版本信息: Microsoft .NET Framework 版本:1.1.4322.2300; ASP.NET 版本:1.1.4322.2300

一般都是组件访问被拒绝, 有时很火,IIS重启不行,系统注销也不行,只有重启,但现在可以不要了

解决方法一:

1.开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
--展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,停止服务,最好最快的方法

解决方法二(转载):

2.1、开始 -- 管理工具 -- 计算机管理(Win2003的位置,其他操作系统类似)打开计算机管理
2.2、展开计算机管理左边树中“服务和应用程序”节点,再在其下展开“索引服务”节点,再在其下展开“System”节点,再在其下展开“目录”节点。
2.3、在计算机管理的右边我们可以看到配置的索引服务目录。
2.4、在“目录”节点上右击鼠标,选择“新建”--“目录”
2.5、在“添加目录”对话框中,路经输入框中输入 ASP.net 的临时文件目录。默认应该是:
c:\<WINDIR>\Microsoft.NET\Framework\<Version Number>\Temporary ASP.NET Files  目录。
<Version Number> 指你要处理的.net版本。
2.6、在“包含在索引中吗?”选项中,选择“否”
2.7、单击“确定”按钮
2.8、在“索引服务”节点上右键单击,重起索引服务即可。

解决方法三:
   1. 可以删除 bin\XX.pdb

引: http://qiao198.cnblogs.com/archive/2005/08/11/212246.html

发表于 2007-05-10 11:09 木子的blog 阅读(2536) | 评论 (0)编辑 收藏
 
1.打开VS.NET开发环境;
2."文件"->"新建"->"项目";
3."项目类型"选"安装和部署项目","模板"选"Web安装项目",然后填写"名称"和"位置",最后"确定";
4.鼠标右击"解决方案",选择"添加"->"Web上现有的项目",然后根据屏幕提示选择要发布的项目;
5.右击"Web应用程序文件",选择"添加"->"项目输出";
6.在"添加项目输出组"对话框中选择"主输出"和"内容文件",最后"确定";
7."生成"->"生成项目",完成后生成的安装程序在第3步所指定的文件夹下,运行setup即可发布;

当然,发布的机器上必须安装好.net framework和iis.

你要注意这一步
6.在"添加项目输出组"对话框中选择"主输出"和"内容文件",最后"确定";

7.其它文件要建立相应文件夹,将文件手工加入
8.若有水晶报表等 ,请加入程序集 水晶报表依赖的动态库..

重新生成便可
发表于 2007-05-10 10:34 木子的blog 阅读(2561) | 评论 (0)编辑 收藏
2007年1月29日
IT方面的论坛太多了,有综合,有专业,有行业,在各个论坛里混了几年,体会颇深,以前是论坛哪里人多,往哪里去,新浪论坛,网易是经常去的,人多啊,好几十万,去了以后才发现没有意思,没有共同的语言,于是逛专业论坛,行业论坛,终于找到了共同语言,总结一下论坛的经验:人不在多,有仙则灵,贴不在多,有精则行,逛了大半辈子,一个IT人发展方向一定要除了技术外,业务,理论,思想一个都不能少,于是我推荐如下这些论坛,或许真能帮助您,做论坛,都是赔本的买卖,不收费还帮助你学习,得向斑竹们致敬啊。
  
  以下论坛排名不分先后,还有许多业界知名的论坛,主要有点偏门,这个不做概述,呵呵。
  
  IT技术开发综合类
  http://community.csdn.net/
  适合人群:只适合软件开发者
  技术开发最全面的论坛,里面可以遇到很多牛人,版面也很全,什么J2EE,.NET啊,该有的全上,在这里基本上可以提出任何问题,人气也是最旺的,不过一般提出的意见都有正方两面的,所以最终解决问题,还是靠自己。
  评价:专业,很牛逼,就是速度慢。
  
  http://www.52rd.com/bbs
  适合人群:研发人员
  我爱研发网,顾名思义,是针对R&D研发人员的,目前在射频,通信,手机研发是国内第一的,牛人不少,问题讨论的很彻底。论坛制度很人性化,设有资料交换区,有超大量有价值的资料。
  评价:强,速度还可以;
  
  http://bbs.chinaunix.net/forum/
  适合人员:系统工程师
  这里的特色就是操作系统方面在业界是最著名的,牛人不少,目前,在数据库,网络方面也颇有建树,当然灌水方面也不赖,呵呵,属于温柔性
  评价:强,速度还可以
  
  http://bbs.chinajavaworld.com/
  适合人员:JAVA开发
  JAVA方面非常综合的论坛了,牛人也很多,是一个难得的JAVA论坛,涉及你想象的关于JAVA目前任何技术。
  评论:强,速度还可以。

  电子工程师类
  http://21icbbs.com/
  适合人员:电子工程师
  人气不错,覆盖面比较广,老牌了,就是有点和时代脱节了,无论是设计上还是内容上
  评论:强,速度还可以

  http://www.eetchina.com/DG/eec_dg_home.htm
  适合人员:电子工程师
  环球资源的子站,页面设计很大气,技术文章也比较及时和权威,是个难得的好网
  评论:强,速度还可以
  
  网络工程类
  www.1000bbs.com
  适合人员:布线/网络工程师
  人气很旺,特色是版面比较紧凑,综合布线这一块很权威,很窄很专,时间非常久了,颜色比较明快,就是太低端了,
  评价:不错,速度一般
  
  http://www.sharecenter.net/
  适合人员:网络工程师
  之所以我喜欢是这个网站很多做CISCO工程都知道,也是别人介绍我去的,时间非常久了,颜色比较暗谈,属于忧郁型。
  评价:不错,速度也还可以
  
  IT营销管理类
  http://www.topren.net/forum/index.php
  适合人员:企业策划,CIO
  业界知名的知识站点“唐人社区”,信息化管理顾问可以去看看,人也很多,可惜,都是下载,实质性内容需要改观,我记得是非常专业的网站。
  评价:不错,速度也还可以。
  
  IT管理综合类
  http://club.amteam.org/
  适合人群:大多数,
  评论类比较多,基本上在其他媒体上看到的评论,这里都会有,要想了解IT发展的情况,就来这里看看。
  评价:很好,休闲工作都可以看。
发表于 2007-01-29 09:47 木子的blog 阅读(6210) | 评论 (5)编辑 收藏
2006年10月9日

前言:     
   由于以前用vb和vc++封装过dll和ocx文件. 或者在网上下的类;若重新编写和封装会很费时和费力. 如vb简单易用,对数据库操作通用类进行封装.现在vc中可以引用之。另外由于vc执行效率高,某些 较复杂算法或低层处理可在vc中进行封装. 这样经常要求混用.下面是实际中个例子记,分vb6.0,vc++各自创建和调用四个部分

   1: vb能封装ocx和active dll文件. 注意 active dll是一种动态,在被调用环境中不仅引用这个dll,而且还要引用这个dll所引用的其它文件,如 DBCommom.dll 是个数据库操作类封装,它引用了Ado 接口).其创建略,具体引用见后.
   
   2.vc中做dll时注意要提供接口,供其它程式调用.
     a>创建 win32 Dynamic-Link Library 如项目CMyTestDll
     b>加入成员function(在 .h中申明 .cpp中实现)

//取电脑名称
int CMyTestDll::GetComputerNameE(LPTSTR computer_name)
{
   DWORD buf=255;
   LPTSTR strname=new char[buf];
  if(GetComputerName(strname,&buf)!=0)
  {
  strcpy(computer_name,strname);
 return 1;
  }
  return 0;
}
//计算两个值之和
int CMyTestDll::Sum(int a, int b)
{
  return(a+b);
}

   c.>一定要加上CMyTestDll.def 文件 ,并在在其中定义导出各个function及参数,否则不能被调用
     EXPORTS
     GetComputerNameE @1;
     Sum @2; @3;
   d.>编译成dll便可以.最好每个function定义int为返回值.


  3.vb引用vc中dll 和普通API函数一样.(vb的long对应 vc的int)
    '引用
Private Declare Function GetComputerNameE Lib "目录\MyTestDll.dll" (ByVal strName As String) As Long
Private Declare Function Sum Lib "目录\\MyTestDll.dll" (ByVal g As Long, ByVal b As Long) As Long
    '调用
     Dim str As String * 20 ' 注意对于传址,一定要定义其空间大小(数组可以不指定)
     dim a As Long, b As Long
        a=25 b=78
      result = GetComputerNameE(str) 
      result=Sum(a, b)


  4.vc引用vb中ocx和dll
    如 C:\TestVb\DBCommon.dll 是个vb做的数据库通用类。包括对表的操作。
      在vc中要同时引用 DBCommon.dll和msado15.dll
    a>stdafx.h 中加上
       #import "C:\Program Files\Common Files\System\Ado\msado15.dll" no_namespace      rename("EOF","adoEOF")
    #import "E:\backup\Recycled\Study\VB\vb_Report\DBCommon.dll" named_guids(不知道类名用默认,否则用no_namespace 类名) 
     
    b>在调用时先要在App中InitInstance
       //初始化com类
      ::CoInitialize(NULL);

          //用指定命名来定义类型接口指针
          ::DBCommon::_clsDBCommonPtr pdb;
    HRESULT hr=pdb.CreateInstance(DBCommon::CLSID_clsDBCommon); 
   if(FAILED(hr))
   {
                 AfxMessageBox("Active dll error",MB_ICONINFORMATION);
    return false;
   }
 
   pdb->PutDBPath(CurrentMoudlePath); //向类中传入数据库存路径
   pdb->PutDBPwd((_bstr_t)strpwd); //向类中传入数据库存密码
   BSTR bstrNo=_com_util::ConvertStringToBSTR(Mydata->Name.GetBuffer(0));
  // BSTR bstrNo=::SysAllocString(L"Q50001");
     hr=pdb->Qutation_Print_Transe(&bstrNo);//向类中传入报价单号
        
  
   pdb.Detach(); //free memory
 
  若Active dll修改后(可删除ncb文件),要重新编译源程式便可!

发表于 2006-10-09 09:58 木子的blog 阅读(4076) | 评论 (0)编辑 收藏
2006年5月31日
ASP.NET---合并多个字段值

一般支持数据绑定的web控件,例如DorpDownList控件、CheckBoxList控件等,都包含五个属性:DataSourceDataMemberDataTextFieldDataValueFieldDataTextFormatStringDataSource用于获取数据源,亦即获取包含数据的集合;其他四个属性用于获取数据源中的一个字段值。然而,通常情况下,你想将这些数据源中的多个字段值绑定在一起赋值给其中的一个属性,这是不能直接实现的。下面我们将介绍两种方法用于实现这一功能。

以上限制在于不能将多个字段值绑定在一起,赋值给这四个属性中的其中一个;但是SQL语句却完全没有这种限制。所以,我们的第一个方法是使用SQL语句将源表中的两个或多个字段值绑定在一起,使用AS子句传递给另一个字段,这样就实现了一个字段包含多个字段值。由于现在一个字段就包含了多个字段的值,我们将其赋值给web控件的那四个属性时就不用有更多的考虑了。我们可以参考下面的语句看看这种方法的妙处:

strCmd="SELECTemployeeid,lastName+','+firstNameAS'EmployeeName'FROM   Employees";

这种方法十分简洁,也是最直接的一种方法,不过存在着效率不足的问题,而且有可能会产生重复数据。下面我们介绍另一种方法,我们可以将源表填充到一个数据集DataSet中,然后将数据集的数据放置到一个数据表DataTable中,然后给该表创建一个新列,该列由源表中的两个或多个字段构成,这样我们也实现了多个字段值的绑定。下面的语句可以说明这种方法的实现:

dt.Columns.Add(“EmployeeName”,typeod(String),”lastName+’,’+firstName”);

后一种方法的缺点在于创建新列的开销。不过这种方法条理比较清楚,而且不会产生重复数据的可能,建议使用这种方法。

为了说明这两种方法,下面的代码将两种方法放在一起实现了:

//在此处放置用户代码以初始化页面

stringstrConn,strCmd;

strConn="DATABASE=NorthWind;SERVER=localhost;UID=sa;PWD=99133009;";

//如果既需要将firstName和LastName绑定,又需要单独使用他们,下面的语句就会产生重复数据。

strCmd="SELECTemployeeid,firstName,lastName,lastName+'---'+firstName AS'EmployeeName' FROMEmployees";

SqlDataAdapterdsda=newSqlDataAdapter(strCmd,strConn);

DataSetds=newDataSet();

dsda.Fill(ds,"EmployeeList");

DataTabledt=ds.Tables["EmployeeList"];

             

//第一种方法

//DDL1是一个DropDownList控件

DDL1.DataSource=dt.DefaultView;

DDL1.DataTextField="EmployeeName";

DDL1.DataValueField="employeeid";

DDL1.DataBind();

/*第二种方法

dt.Columns.Add("EmployeeName",typeod(String),"lastName+','+firstName");

DDL1.DataTextField="EmployeeName";

DDL1.DataBind();

 */
发表于 2006-05-31 16:57 木子的blog 阅读(2301) | 评论 (0)编辑 收藏
2005年12月29日

//开发环境:Window 2000、SQLServer2000、.Net Framework SDK正式版
//开发语言:C#、ASP.Net
//简介:数据库中图片存蓄及读取
//作者:engine
/*
说明:在ASP中,我们用Request.TotalBytes、Request.BinaryRead()来上传图片,这个可恶的BinaryRead()方法非常笨,单个文件上传倒没什么大事,单如果多个图片上专可就花大气力了…!而现在ASP.Net中将会把解决以前ASP中文件上传的种种问题,使你在ASP.Net中轻轻松松开发出功能强大的上传程序,下面大家看看例子啦。
*/
//注意:由于作者水平有限,错误是难免的,如发现错误请指教
//Email:e_engine@21cn.com

/*
首先在SQL Server中建立一个图片存储的数库表,ImageData Column为图象二进制数据储存字段,ImageContentType Column为图象文件类型记录字段,ImageDescription Column为储蓄图象文件说明字段,ImageSize Column为储存图象文件长度字段,结构如下:
CREATE TABLE [dbo].[ImageStore] (
    [ImageID] [int] IDENTITY (1, 1) NOT NULL ,
    [ImageData] [image] NULL ,                            
    [ImageContentType] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
    [ImageDescription] [varchar] (200) COLLATE Chinese_PRC_CI_AS NULL ,
    [ImageSize] [int] NULL
) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]
*/

//UpLoadImage.aspx程序内容如下:
<%@ Page Inherits="UploadImage.UploadImage" SRC="UpLoadImage.cs" Language="C#"%>
<HTML><title>上传图片</title>
<BODY bgcolor="#FFFFFF">
<FORM ENCTYPE="multipart/form-data" RUNAT="server" ID="Form1">
<TABLE RUNAT="server" WIDTH="700" ALIGN="left" ID="Table1" cellpadding="0" cellspacing="0" border="0">
<TR>
     <TD>上传图片(选择你要上传的图片)</TD>
<TD>
<INPUT TYPE="file" ID="UP_FILE" RUNAT="server" STYLE="Width:320" ACCEPT="text/*" NAME="UP_FILE">
</TD>
</TR>
<TR>
     <TD>
      文件说明(添加上传图片说明,如:作者、出处)
     </TD>
<TD>
<asp:TextBox RUNAT="server" WIDTH="239" ID="txtDescription" MAINTAINSTATE="false" />
</TD>
</TR>
<TR>
<TD>
<asp:Label RUNAT="server" ID="txtMessage" FORECOLOR="red" MAINTAINSTATE="false" />
</TD>
<TD>
<asp:Button RUNAT="server" WIDTH="239" ONCLICK="Button_Submit" TEXT="Upload Image" />
</TD>
</TR>
</TABLE>
</FORM>
</BODY>
</HTML>
//-------------------------------------------------------------------
//UpLoadImage.cs程序内容如下:
using System;
using System.Web;
using System.IO;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace UploadImage
{
public class UploadImage : Page {
protected HtmlInputFile UP_FILE;          //HtmlControl、WebControls控件对象
protected TextBox txtDescription;
protected Label txtMessage;
protected Int32 FileLength = 0;          //记录文件长度变量
protected void Button_Submit(System.Object sender, System.EventArgs e) {
HttpPostedFile UpFile = UP_FILE.PostedFile;  //HttpPostedFile对象,用于读取图象文件属性
FileLength = UpFile.ContentLength;     //记录文件长度
try {
if (FileLength == 0) {   //文件长度为零时
txtMessage.Text = "<b>请你选择你要上传的文件</b>";
} else {
Byte[] FileByteArray = new Byte[FileLength];   //图象文件临时储存Byte数组
Stream StreamObject = UpFile.InputStream;      //建立数据流对像
//读取图象文件数据,FileByteArray为数据储存体,0为数据指针位置、FileLnegth为数据长度
StreamObject.Read(FileByteArray,0,FileLength);  
//建立SQL Server链接
SqlConnection Con = new SqlConnection("Data Source=Localhost;Initial Catalog=testdb;User ID=sa;Pwd=;");
String SqlCmd = "INSERT INTO ImageStore (ImageData, ImageContentType, ImageDescription, ImageSize) VALUES (@Image, @ContentType, @ImageDescription, @ImageSize)";
SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
CmdObj.Parameters.Add("@Image",SqlDbType.Binary, FileLength).Value = FileByteArray;
CmdObj.Parameters.Add("@ContentType", SqlDbType.VarChar,50).Value = UpFile.ContentType;  //记录文件类型
//把其它单表数据记录上传
CmdObj.Parameters.Add("@ImageDescription", SqlDbType.VarChar,200).Value = txtDescription.Text;
//记录文件长度,读取时使用
CmdObj.Parameters.Add("@ImageSize", SqlDbType.BigInt,8).Value = UpFile.ContentLength;
Con.Open();
CmdObj.ExecuteNonQuery();
Con.Close();
txtMessage.Text = "<p><b>OK!你已经成功上传你的图片</b>";//提示上传成功
}
} catch (Exception ex) {
txtMessage.Text = ex.Message.ToString();
}}}}
//----------------------------------------------------------------------
//好了,图片已经上传到数据库,现在还要干什么呢?当然是在数据库中读取及显示在Web页中啦,请看以下程序:
//ReadImage.aspx程序内容如下:
/-----------------------------------------------------------------------
<%@ Page Inherits="ReadImage.MainDisplay" SRC="ReadImage.cs"%>
//----------------------------------------------------------------------
//ReadImage.cs程序内容如下:
using System;
using System.Data;
using System.Data.SqlClient;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
namespace ReadImage {
public class MainDisplay : System.Web.UI.Page {
public void Page_Load(System.Object sender, System.EventArgs e) {
    int ImgID = Convert.ToInt32(Request.QueryString["ImgID"]);  //ImgID为图片ID
    //建立数据库链接
    SqlConnection Con = new SqlConnection("Data Source=KING;Initial Catalog=testdb;User ID=sa;Pwd=;");
    String SqlCmd = "SELECT * FROM ImageStore WHERE ImageID = @ImageID";
    SqlCommand CmdObj = new SqlCommand(SqlCmd, Con);
    CmdObj.Parameters.Add("@ImageID", SqlDbType.Int).Value = ImgID;
    Con.Open();
    SqlDataReader SqlReader = CmdObj.ExecuteReader();
    SqlReader.Read();    
    Response.ContentType = (string)SqlReader["ImageContentType"];//设定输出文件类型
    //输出图象文件二进制数制
    Response.OutputStream.Write((byte[])SqlReader["ImageData"], 0, (int)SqlReader["ImageSize"]);    
    Response.End();
    Con.Close();
    //很简单吧^_^
 }
}
}
//--------------------------------------------------------------------
//最后,我们当然要把它在Web页面显示出来啦
//ShowImage.hml
<html>
<body>
这个是从数据库读取出来的图象:<img src="ReadImage.aspx?ImgID=1">
<body>
</html>
//------------------------------------------------------------------
//最后,这程序当然还很多改进之处,希望大家多想想多编编一定可以写出更多的图象上传程序
//Good Luck,engine

发表于 2005-12-29 09:53 木子的blog 阅读(3792) | 评论 (0)编辑 收藏
2005年12月21日
新建项目后无法创建窗口,提示aotomation服务器无法创建对象,该如何解决呀????
--------------------------------
regsvr32 scrrun.dll 
参考
http://www.cnblogs.com/wayfarer/archive/2004/04/21/6779.aspx
发表于 2005-12-21 10:02 木子的blog 阅读(2589) | 评论 (0)编辑 收藏
2005年10月31日
//运行环境 vc++和Access 2000
//对于货币直接格成字符串.日期则加上#
CString sql;
sql.format( “Update set table 货币单价=%s,日期字段=#%s#”,m_COleCurrency.Format(),  m_CTime.Format("%Y/%m/%d"))  


//从记录集中取数据
_variant_t var;
COleCurrency m_Cost_Price;
CFields pFields;
//货币型   直接加字符名便可. 注意不要用索引号来
      var=pFields.GetItem(_variant_t("成本价")).GetValue();
      VariantChangeType(&var,&var,0,VT_CY);
       m_Cost_Price=(var.vt!=VT_NULL)?var.cyVal:COleCurrency(0,0);

//Float 型
       var=pFields.GetItem((_variant_t)("包装长")).GetValue();
      VariantChangeType(&var,&var,0,VT_R4);
       m_Float=(var.vt!=VT_NULL)?var.fltVal:0.0f

//字符型
        var=pFields.GetItem((_variant_t)("备注")).GetValue();
        str=(var.vt!=VT_NULL)?(BSTR)var.bstrVal:'\0';

//存取时
CString m_contact_person;
 pReh->PutCollect("Contact_Person",(_variant_t)m_contact_person);

//对于记录重新
pReh->Requery(adOptionUnspecified);
发表于 2005-10-31 08:32 木子的blog 阅读(4273) | 评论 (0)编辑 收藏