[转]重装系统后ORACLE的恢复的几种方法
作者:cxty 日期:2009-08-28
首先,备份数据库(X:\oracle\oradata)下的数据文件,重新命名即可(否则装数据库的时候会提示sid已存在)。重新安装数据库,当然数据库的名字就是你要恢复的名字。安装完成后,打开控制面板,停止oracle的服务。把(X:\oracle\oradata)下新生成的文件改名,把原先目录下的文件恢复名字。再重新启动oracle服务和监听。用sys/as dba 登陆数据库,可能会提示权限不够(ora-01031)修改(X:\oracle\ora92\network\admin )文件夹下的sqlnet.ora文件,添加SQLNET.AUTHENTICATION_SERVICES= (NTS),增加权限。登陆进去后,打开table提示不能打开。打开common页,执行命令alert database open;这时再刷新table,发现原先的表可以打开了。恢复成功了。再用原先数据库的普通用户进入。发现一切正常。至此,大功告成。
第二种:
1、首先,将原来的ORACLE文件夹改名,原来的路径是D:/oracle。我暂时改成D:/oracle_old。找来ORACLE(我用的是ORACLE 9I)安装光盘,将ORACLE安装在原来安装的目录下,这样恢复起来更加方便,主要是注册表的内容不用修改。
2、安装完了之后,系统中又有一个可以使用的ORACLE了。这个时候要做的就是将原来的文件和数据恢复过来。第一步,先关闭ORACLE的所有已经启动的项目,在“服务”里面逐一关闭。然后,将安装目录改名。我现在用的是D:/oracle。改成D:/oracle_new。再将D:/oracle_old改成D:/oracle。
正准备弄个语音识别的,转个材料“.Net平台下开发中文语音应用程序”
作者:cxty 日期:2009-07-10
语音是人类最自然的交互方式,也是现阶段软件用户界面发展的最高目标。微软公司一直积极推动语音技术的发展,并且公布了语音开发平台Speech SDK帮助开发人员实现语音应用。
随着.net技术深入人心,越来越多的程序员开始转到.net平台上进行开发。然而,在新发布的.net speech SDK里面并没有对中文语音进行支持,目前支持中文的Speech SDK最高版本为Windows平台下的SAPI 5.1(),本文介绍如何在.net平台下利用SAPI5.1开发中文语音应用程序。
--------------------------------------------------------------------------------
目录:
很久没更新了,发一个delphi的
作者:cxty 日期:2009-05-06
改进电子商务网站易用性的10个方法
作者:cxty 日期:2008-11-10
今天消费者网络购物的支出越来越多,可是太多的网站并没有考虑到他们网站和订购流程的易用性,最终导致用户很快就放弃了他们的订购。这里有10种可以提高你的电子商务网站易用性的方法,可以帮助你最大可能的提高网站的转化率,将用户的“购物篮里的商品”换为订单。
1、用email来标识用户(登陆名)
你曾经在网上购物中,用过多少不同的用户名作为账号?又用过多少不同的Email作为账号?我敢打赌,你不仅不同的Email用的很少,而且你会发现Email比用户名,更容易记忆。大多数情况下,用Email标识用户比用户名更好。因为Email容易记忆,更标准,这意味着你不必担心去记忆哪些乱七八糟的字符。他们永远是独一无二的,永远不会像用户名那样出现重名。
2、将下订单的过程划分成几个大步骤(让用户一次处理一个任务)
订购流程通常非常复杂,比较典型的场景可能包括: 用户输入一个配送地址,选择配送方式,选择输入支付方式,最后确认自己的订单。试图让用户在一个步骤里做完这些事会有问题,因为用户要输入太多的信息了!
将这些步骤分解,让用户每次能处理一个步骤,确保每个步骤需要思考和输入的信息相对较少。
Windows Mobile 中开关 WIFI 的“通用”代码
作者:cxty 日期:2008-08-13
#include "UniBase.h"
#include "Reg.h"
#include <PM.h>
class CWiFiHelper
{
private:
TCHAR m_tzDevice[MAX_NAME];
public:
CWiFiHelper()
{
TCHAR tzKey[MAX_PATH];
CReg reg(HKEY_LOCAL_MACHINE, TEXT("Comm"));
for (UINT i = 0; reg.EnumKey(i, tzKey) == S_OK; i++)
{
if (tzKey[UStrLen(tzKey) - 1] == '1')
{
CReg dev(reg, tzKey);
TCHAR tzDisplayName[MAX_PATH];
if (dev.GetStr(TEXT("DisplayName"), tzDisplayName))
{
if (UStrStrI(tzDisplayName, TEXT("WiFi")) ||
UStrStrI(tzDisplayName, TEXT("Wi-Fi")) ||
UStrStrI(tzDisplayName, TEXT("Wireless")) ||
UStrStr(tzDisplayName, TEXT("802.11")))
{
UStrPrint(m_tzDevice, PMCLASS_NDIS_MINIPORT TEXT("\\%s"), tzKey);
//MessageBox(NULL, m_tzDevice, STR_AppName, MB_ICONINFORMATION);
return;
}
}
}
}
m_tzDevice[0] = 0;
}
BOOL IsEnabled()
{
CEDEVICE_POWER_STATE s = D4;
if (m_tzDevice [0])
{
GetDevicePower(m_tzDevice, POWER_NAME, &s);
}
return s == D0;
}
HRESULT Enable(BOOL bEnable = TRUE)
{
if (m_tzDevice [0])
{
return SetDevicePower(m_tzDevice, POWER_NAME, bEnable ? D0 : D4);
}
else
{
return ERROR_DEVICE_NOT_AVAILABLE;
}
}
};
PPC中检查某程序是否运行
作者:cxty 日期:2008-07-28
HANDLE hMutex=::CreateMutexW(NULL,true,L"程序名");
DWORD dwError=GetLastError();
if(dwError==ERROR_ALREADY_EXISTS)
{
::AfxMessageBox(L"The program is running!");
return ;
}
::ReleaseMutex(hMutex);
第二种:
HWND hWmp=::FindWindowW(L"Dialog",L"程序窗口名");
if(hWmp)
{
::AfxMessageBox(L"The program is running!");
return FALSE;
}
第三种:
PROCESSENTRY32 lppe;
memset(&lppe,0,sizeof(PROCESSENTRY32));
HANDLE handle=CreateToolhelp32Snapshot(TH32CS_SNAPALL,0);
lppe.dwSize=sizeof(PROCESSENTRY32);
::Process32First(handle,&lppe);
do
{
HANDLE hh=::OpenProcess(PROCESS_ALL_ACCESS,FALSE,lppe.th32ProcessID);
CString temp(lppe.szExeFile);
if(temp.Find(L"程序名")>=0)
{
::AfxMessageBox(L"The program is running!");
::TerminateProcess(hh,0xffffffff);
::CloseHandle(hh);
break;
}
::CloseHandle(handle);
}while(Process32Next(handle,&lppe));
::CloseHandle(handle);
以上三种方法,只能检查其它程序,而不能检查自身是否正在运行,因为windows mobile 系统的运行机制和PC机上的windows XP是不太一样的.
window mobile 5.0截获来电
作者:cxty 日期:2008-07-28
在开发来电防火墙或来电大头贴时,首先就是要截获来电,然后再加以分析,截获来电的方法一般就是用TAPI提供的api函数,这些函数在tapi.h下.
1.初始化线路,并打开线路
DWORD lineHandleCount;
HLINE *lineHandles;
HLINEAPP lineApp;
if(lineInitialize(&lineApp,theApp.m_hInstance,(LINECALLBACK)LineCallback,L"Video",&lineHandleCount)==0)
{
lineHandles = new HLINE[lineHandleCount];
for(DWORD i = 0; i < lineHandleCount; i++)
{
int rc;
DWORD ver;
LINEEXTENSIONID extensionID;
if( lineNegotiateAPIVersion( lineApp, i, 0x00010000, 0x00020000, &ver, &extensionID ) == 0 )
{
rc = lineOpen( lineApp,i,&lineHandles[ i ],ver,0,(DWORD)0,LINECALLPRIVILEGE_MONITOR|LINECALLPRIVILEGE_OWNER,LINEMEDIAMODE_INTERACTIVEVOICE,NULL);
}
}
}
2.编写回调函数,在这个函数里实现功能
VOID CALLBACK LineCallback(DWORD hDevice, DWORD dwMsg, DWORD dwCallbackInstance, DWORD dwParam1, DWORD dwParam2, DWORD dwParam3)
{
//dwMsg是线路消息
//dwParam1,dwParam2是具体的事件
}
3.当结束程序时,关闭线路
for ( DWORD i=0; i<lineHandleCount; i++ )
lineClose( lineHandles[i]);
delete[] lineHandles;
lineShutdown( lineApp );



















