自定义区块

程序员应该成为一位艺术家,而不是想着成为资本家。编程是一种艺术创作,而不应该是一份艰辛的工作。只有这样,创作才是自由和快乐的;作品才能有艺术的价值。

博客统计信息

用户名:goodgoodstudy
文章数:64
评论数:16
访问量:145873
无忧币:283
博客积分:776
博客等级:4
注册日期:2007-08-16

2010-09-25 17:45:08
--附加数据库失败

1.产生失败的原因

比如有个数据库,名叫HIMS,它的数据文件HIMS_Data.mdf和日志文件HIMS_Log.ldf,都放在路径'c:\Program Files\Microsoft SQL Server\MSSQL\data\'下。

但是这个数据库天天跑日志,会产生上G的日志,现在通过企业管理器把数据库分离后,在企业管理器直接附加数据文件HIMS_Data.mdf,会产生如下错误:

----------------------------------------------------------------------------------------------------------------------------------------

错误 1813: 未能打开新数据库 'HIMS'。CREATE DATABASE 将终止。

设备激活错误。物理文件名 'C:\Program Files\Microsoft SQL Server\MSSQL\data\HIMS_Log.ldf' 可能有误。

----------------------------------------------------------------------------------------------------------------------------------------

从而无法将数据库正常附加到SQL Server 2000,正常情况下这样操作是没有问题的,SQL Server会重新生成日志文件,但是因为之前出现了磁盘空间不足,日志文件不完整,从而造成了无法正常附加。
2.解决办法

<1>在企业管理器建立数据库HIMS,这时在..
http://www.cnblogs.com/peterzb/favorite/207835.html
文章来源:[url]http://www.cnblogs.com/mgod/archive/2007/10/19/931013.html[/url]
java中Class.forName的含义



Class.forName(xxx.xx.xx) 返回的是一个类, .newInstance() 后才创建一个对象 Class.forName(xxx.xx.xx);的作用是要求JVM查找并加载指定的类,也就是说JVM会执行该类的静态代码段


Class aClass = Class.forName(xxx.xx.xx);
Object anInstance = aClass.newInstance();


Class.forName("").newInstance()返回的是object
but there is some limit for this method to create instance
that is your class constructor should no contain parameters, and you should cast the instance manually.

Class Driver{
protected static Driver current;
public static Driver getDriver(){
return current;
}
}

Class MyDriver extends Driver{
static{
Driver.current=new MyDriver();
}
MyDriver(){}
}

用时:
Class.forName("MyDriver");
Driver d=Driver.getDriver();

有的jdbc连接数据库的写法里是Class.forName(xxx.xx.xx);而有一些:Class.forName(xxx.xx.xx).newInstance(),为什么会有这两种写法呢?

Class.forName(xxx.xx.xx) 返回的是..
2008-07-18 00:00:40
文章来源:[url]http://blog.csdn.net/zhf811224/archive/2007/04/23/1575598.aspx[/url]
一、   从Oracle和Microsift网站上下载JDBC驱动程序
n         下载Oracle JDBC驱动程序
1.       网址:
[url]http://www.oracle.com/technology/global/cn/software/tech/java/sqlj_jdbc/index.html[/url]
2.       在Eclipse安装目录,例如D:\lecture\JAVA\Eclipse\eclipse下创建路径:
D:\lecture\JAVA\Eclipse\eclipse\jdbc\OracleJDBC\lib。
3.       下载4个java归档文件放入其中:
1)       ocrs12.jar
2)       ojdbc14.jar
3)       ojdbc14dms.jar
4)       orai18n.jar
 
n         下载SQL Server 2000 Driver for JDBC Service Pack 3,支持JDK 1.4
1.       网址:
[url]http://www.micros..
文章来源:[url]http://support.microsoft.com/kb/313100/zh-cn[/url]
 
如何开始使用 Microsoft JDBC
察看本文应用于的产品





文章编号
:
313100

最后修改
:
2005年8月12日

修订
:
3.2

本页
概要

设置 CLASSPATH 变量

注册驱动程序

文章来源:[url]http://www.cnblogs.com/redfox241/archive/2007/06/18/788109.aspx[/url]
为了解决客户在安装产品的过程中使用MS SQL SERVER数据库可能出现的由于端口号而无法连接数据库的问题。
问题分析
SQLServer数据库特有的1433端口号配置不当或被操作系统屏蔽,故而连接不上数据库。
解决方案
首先检查1433端口号是否配置正确:
从左下角的"开始"进入。。。。。。最后找到"服务器网络实用工具"
到"TCP/IP"后并选中,点击[属性]出现下面对话框:
 
如[默认端口]不是"1433",更正之;
如是"1433"则请把防火墙及杀毒软件先关闭。
注意:WindowsXP、Windowx2003操作系统需要打数据库sp3或sp3a或ap4补丁,而Windows2000 操作系统不打任何数据库补丁也可。
测试1433端口号是否可用:
测试1433端口号,可在命令行(DOS窗口),输入"telnet 192.168.9.162 1433",如出现错误提示则此端口号不通,说明是操作系统的问题(先确保数据库端口已是'1433'),解决方式就是打数据补丁及关闭防火墙和杀毒软件,目的就是把此端口放开。
类别:Web|阅读(988)|回复(0)|(0)阅读全文>>
文章来源:[url]http://quezhuning.spaces.live.com/Blog/cns!19493C442298AE31!465.entry[/url]
关于可恶的JDBC连接微软SQLSERVER2000数据库的问题(一)

 
以前在WINDOWS 2000 SERVER(SP4)服务器版连接成功过,这回换成WINDOWS XP操作系统后连接了好几次也没有成功,他们所说的给SQLSERVER2000打上SP3补丁就好用,可是就算点完加补丁的程序之后,好像版本的补丁还是SP2没有变,不知什么意思。
以下是转自一个网民的相关连接资料,我将在下一篇写自己连接成功的方法:
java连接SQL server 2000 详细步骤
 
配置:winXP JDK1.6 SQL server 2000
出错信息:
java.sql.SQLException: [Microsoft][SQLServer 2000 Driver for JDBC]Error establis
hing socket.
at com.microsoft.jdbc.base.BaseExceptions.createException(Unknown Source
)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.base.BaseExceptions.getException(Unknown Source)
at com.microsoft.jdbc.sqlserver.tds.TDSConnection.<init>(Unknown Source)
at com.microsoft.jdbc.sqlserver.SQLServerImplConnection.open..
类别:Web|阅读(1603)|回复(0)|(0)阅读全文>>
2008-04-16 15:48:35
#include<stdio.h>
struct st
{
 int key;
 int xb;//下标
};
void merge(struct st a[],struct st temp[],int u,int m,int v)// 一次归并(以a[].key从小到大将结构体排序)
{
 int i,j,k,t;
 i=u;//i从第一段的起始位置开始,一直到最终位置m;
 j=m+1;//j从第2段的起始位置开始,一直到最终位置v
 k=u;//k表示的是目标b[]的起始位置
 while(i<=m&&j<=v)//将两段与序元素中元素值较小的元素依次放入目标b[]中
 {
  if(a[i].key<=a[j].key)//若要以a[].v从小到大将结构体排序,则只需在此处将a[i].key<=a[j].key改为a[i].key>=a[j].key
   {temp[k]=a[i]; i++;}
  else {temp[k]=a[j]; j++;}
  k++;
 }
 if(i<=m) //将第一段剩余元素放入目标b[]中
  for(t=i;t<=m;t++)
   temp[k+t-i]=a[t];
 else
  for(t=j;t<=v;t++)
   temp[k+t-j]=a[t];
}
void mergepass(struct st a[],struct st temp[],int len,int alen)//一趟归并(alen为a的长度,len为待归并的有序段的长度)
{
 int i=0,j;
 while(i<=..
2008-04-16 15:46:58
2.SHELL排序
这个排序非常复杂,看了程序就知道了。
首先需要一个递减的步长,这里我们使用的是9、5、3、1(最后的步长必须是1)。
工作原理是首先对相隔9-1个元素的所有内容排序,然后再使用同样的方法对相隔5-1个元素的排序
以次类推。
#include <iostream.h>
void ShellSort(int* pData,int Count)
{
  int step[4];
  step[0] = 9;
  step[1] = 5;
  step[2] = 3;
  step[3] = 1;

  int iTemp;
  int k,s,w;
  for(int i=0;i<4;i++)
  {
    k = step[i];
    s = -k;
    for(int j=k;j<Count;j++)
    {
      iTemp = pData[j];
      w = j-k;//求上step个元素的下标
      if(s ==0)
      {
        s = -k;
        s++; ..
2008-04-16 15:44:14
1.双向冒泡:
通常的冒泡是单向的,而这里是双向的,也就是说还要进行反向的工作。
代码看起来复杂,仔细理一下就明白了,是一个来回震荡的方式。
写这段代码的作者认为这样可以在冒泡的基础上减少一些交换(我不这么认为,也许我错了)。
反正我认为这是一段有趣的代码,值得一看。
#include <iostream.h>
void Bubble2Sort(int* pData,int Count)
{
  int iTemp;
  int left = 1;
  int right =Count -1;
  int t;
  do
  {
    //正向的部分
    for(int i=right;i>=left;i--)
    {
      if(pData[i]<pData[i-1])
      {
        iTemp = pData[i];
        pData[i] = pData[i-1];
        pData[i-1] = iTemp;
        t = i;
     &n..
2008-04-16 15:42:48
1.快速排序:
#include <iostream.h>

void run(int* pData,int left,int right)
{
  int i,j;
  int middle,iTemp;
  i = left;
  j = right;
  middle = pData[(left+right)/2]; //求中间值
  do{
    while((pData[i]<middle) && (i<right))//从左扫描大于中值的数
      i++;     
    while((pData[j]>middle) && (j>left))//从右扫描大于中值的数
      j--;
    if(i<=j)//找到了一对值
    {
      //交换
      iTemp = pData[i];
      pData[i] = pData[j];
      pData[j] = iTemp;
      i++;
      j--;
    }
  }while(..
2008-04-16 15:41:00
4.插入法:
插入法较为复杂,它的基本工作原理是抽出牌,在前面的牌中寻找相应的位置插入,然后继续下一张
#include <iostream.h>
void InsertSort(int* pData,int Count)
{
  int iTemp;
  int iPos;
  for(int i=1;i<Count;i++)
  {
    iTemp = pData[i];
    iPos = i-1;
    while((iPos>=0) && (iTemp<pData[iPos]))
    {
      pData[iPos+1] = pData[iPos];
      iPos--;
    }
    pData[iPos+1] = iTemp;
  }
}

void main()
{
  int data[] = {10,9,8,7,6,5,4};
  InsertSort(data,7);
  for (int i=0;i<7;i++)
    cout<<data[i]<<" ";
  cout<<"\n";
}

倒序(最糟情况)
第一轮:10,9,8,7->9,10,8,7(交换1次)(循环1次)
第二轮:9,10,8,7->8,9,10,7(交换1次)(循..
2008-04-16 15:39:06
3.选择法:
现在我们终于可以看到一点希望:选择法,这种方法提高了一点性能(某些情况下)
这种方法类似我们人为的排序习惯:从数据中选择最小的同第一个值交换,在从省下的部分中
选择最小的与第二个交换,这样往复下去。
#include <iostream.h>
void SelectSort(int* pData,int Count)
{
  int iTemp;
  int iPos;
  for(int i=0;i<Count-1;i++)
  {
    iTemp = pData[i];
    iPos = i;
    for(int j=i+1;j<Count;j++)
    {
      if(pData[j]<iTemp)
      {
        iTemp = pData[j];
        iPos = j;
      }
    }
    pData[iPos] = pData[i];
    pData[i] = iTemp;
  }
}

void main()
{
  int data[] = {10,9,8..
2008-04-16 15:37:46
2.交换法:
交换法的程序最清晰简单,每次用当前的元素一一的同其后的元素比较并交换。
#include <iostream.h>
void ExchangeSort(int* pData,int Count)
{
  int iTemp;
  for(int i=0;i<Count-1;i++)
  {
    for(int j=i+1;j<Count;j++)
    {
      if(pData[j]<pData[i])
      {
        iTemp = pData[i];
        pData[i] = pData[j];
        pData[j] = iTemp;
      }
    }
  }
}

void main()
{
  int data[] = {10,9,8,7,6,5,4};
  ExchangeSort(data,7);
  for (int i=0;i<7;i++)
    cout<<data[i]<<" ";
  cout<<"\n";
}
倒序(最糟情况)
第一轮:10,9,8,7->9,10,8,7->8,10,9,7->..
2008-04-16 15:35:42
1.冒泡法:
这是最原始,也是众所周知的最慢的算法了。他的名字的由来因为它的工作看来象是冒泡:
#include <iostream.h>

void BubbleSort(int* pData,int Count)
{
  int iTemp;
  for(int i=1;i<Count;i++)
  {
    for(int j=Count-1;j>=i;j--)
    {
      if(pData[j]<pData[j-1])
      {
        iTemp = pData[j-1];
        pData[j-1] = pData[j];
        pData[j] = iTemp;
      }
    }
  }
}

void main()
{
  int data[] = {10,9,8,7,6,5,4};
  BubbleSort(data,7);
  for (int i=0;i<7;i++)
    cout<<data[i]<<" ";
  cout<<"\n";
}

倒序(最糟情况)
第一轮:10,9,8,7->10,9,7,8->..
修改grub文件,改变引导顺序


 装上fedora近两周了,说心里话,个人感觉在易用性上和Windows相差很大。
我分配10G的空间用于Linux,主要用于学习,一时脱离XP办不到。
在装好fedora后,便由grub来引导,不作选择则默认进入fedora。然而我用fedora时间还不多,仅学习时使用,每次都在开机时选择一次,显然正常人都会不爽。
以下是一点小心得,仅献给和我一样的Linux新手。
用KEdit打开/boot/grub/grub.conf。我的如下:(#号为首的行为注释行)
 # grub.conf generated by anaconda

#

# Note that you do not have to rerun grub after making changes to this file

# NOTICE: You have a /boot partition. This means that

#                 all kernel and initrd paths are relative to /boot/, eg.

#                 root (hd0,8)

#       &nbs..
类别:Linux|阅读(1439)|回复(0)|(0)阅读全文>>
2007-12-16 12:26:33




TCP与UDP的区别









国移动、中国联通推行的GPRS网络、CDMA网络已覆盖大量的区域,通过无线网络实现数据传输成为可能。无线Modem采用GPRS、CDMA模块通过
中国移动、中国联通的GPRS、CDMA网络进行数据传输,并通TCP/IP协议进行数据封包,可灵活地实现多种设备接入,工程安装简单,在工业现场数据
传输的应用中,能很好的解决偏远无网络无电话线路地区的数据传输的难题。同传统的数传电台想比较,更具有简便性、灵活性、易操作性,同时还降低了成本,无
线Modem传输方案是现代化工业现场数据传输最好的选择方案。
    
目前中国移动、中国联通提供的GPRS网络、CDMA网络的数据传输带宽在40Kbps左右,且受带宽的限制,数据采集方案最好采用于主动告警、数据轮巡
采集、告警主动回叫等对传输带宽占用较少的采集方式。同时考虑对前置机实时采集方案的支持,无线Modem传输方案只能作为目前传输方案的补充。
    随着无线通讯技术的不断发展,无线传输数据带宽将不断提高,采用3G无线网络,数据传输带宽将达到2M,无线传输方案将逐渐成为监控传输组网的主要应用方案。
     目前,由于GPRS和CDMA固有..
2007-12-13 16:52:35
心铃讲座之VC篇(1)                                     

VC简介与安装
“到底是学VC,还是学VB呢?”相信不少朋友在学习Windows编程之前都曾经想过这个问题,并一度感到难以取舍。心铃认为,Visual C++和Visual Basic都是非常优秀的可视化编程工具,刚刚涉及Windows编程的朋友选择VB可以很快上手,而有一定C/C++和Windows编程基础的朋友可能会更喜欢VC一些。虽然学习和使用VC需要付出更大一些的工作量,但是掌握了VC编程后,可以加深我们对Windows系统及其使用的各种技术的理解,所以心铃决定继VB和VFP讲座之后,再次带领有兴趣学习VC的朋友开始一趟VC之旅。在出发之前,心铃建议朋友们准备一点干粮和水(事先应掌握一些C/C++和Windows编程方面的基础知识),不过即使带少了或者路途中间出现什么问题也没有关系,相信在VC这个大家庭中处处都有温情在,《软件报》事先已经向大家介绍了很多可以休息和加油的VC驿站,另外心铃信箱也已经准备好了为大家提供必要的帮助。
..
类别:C++|阅读(2313)|回复(0)|(0)阅读全文>>
2007-12-12 15:56:21
以Fedora Core 6 平台为准
 
1.关于rpm的一些命令
  rpm -qa
 用于列出当前系统安装的所有软件包
 
 rpm -qa -l
 用于列出所有软件的安装文件的安装路径
 
 rpm -q -l packgename
 用于列出指定packgename的安装路径
 
 rpm -q -i packgename
 用于显示指定packgename的软件包相关信息
 
rpm -q -a -last
按软件包安装详细时间的后先顺序列出所有软件包及其安装详细时间
 
 
2.关于wget的一些命令
  首先wget下载的默认下载路径在当前工作目录
  wget -nd [url]http://fly.src.fer.hr/abcd/robots.txt[/url]
  则下载的robots.txt文件将被下载在当前工作目录,
  相当于 wget [url]http://fly.src.fer.hr/abcd/robots.txt[/url]
 
  wget -x [url]http://fly.src.fer.hr/abcd/robots.txt[/url]
  则在当前目录下创建 fly.src.fer.hr/abcd 目录文件夹
  robots.txt保存在abcd文件夹下
一、软件版本:
Red Flag WorkStation 5.0
NFS Server
二、安装:
直接采用系统自带RPM安装。
三、编辑/etc/exports文件
/tmp *(rw,sync)
/tmp
四、启动服务器
Service   portmap start
Service   nfs start
Service   nfslock   start
五、客户端使用
Mount    -t nfs      192.168.0.22:/root  /mnt
六、容易出现的问题:
a)         Portmap没有正常启动启动
b)        当NFS Server 上面的/etc/hosts文件中的域名与本机IP不对称时,会出现无法导出共享目录的现象。即exportfs 命令导出共享时间极长,导致无法导出,或者showmount –e命令显示本机共离时显示” mount clntudp_create: RPC: Port mapper failure - RPC: Timed out”错误。
c)        NFS server端防火墙导致客户端无法连接
d)        客户端防火墙导致客户端无法连接:
mount clntudp_create: RPC: Port mapper failure - RPC: Timed out)
七、 常用的命..
 <<   1   2   3   4   >>   页数 ( 1/4 )

公告

我最近发表的评论

安装Linux音乐播放器 回复
我装完了结果播放不了,汗!!!

背景音乐

我的音乐

00:00 | 00:00