预览模式: 普通 | 列表
第一种:
首先,备份数据库(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。

查看更多...

分类:网络开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 858
摘要:
语音是人类最自然的交互方式,也是现阶段软件用户界面发展的最高目标。微软公司一直积极推动语音技术的发展,并且公布了语音开发平台Speech SDK帮助开发人员实现语音应用。
随着.net技术深入人心,越来越多的程序员开始转到.net平台上进行开发。然而,在新发布的.net speech SDK里面并没有对中文语音进行支持,目前支持中文的Speech SDK最高版本为Windows平台下的SAPI 5.1(),本文介绍如何在.net平台下利用SAPI5.1开发中文语音应用程序。

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

目录:

查看更多...

分类:移动开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1158

很久没更新了,发一个delphi的

关于delphi中开发activex控件,并从activex控件中调用html页面中的javascript。

这几天在搞个需要activex控件来实现的项目,丫丫的activex控件应该属于都快被人遗忘的技术了。

delphi中开发activex控件其实挺简单的,唯一的问题就是怎么调用页面中的javascript呢。

搜了n久发现一个c++写的通过接口调用方法,看上去贼复杂。

查看更多...

分类:网络开发 | 固定链接 | 评论: 2 | 引用: 0 | 查看次数: 1368

改进电子商务网站易用性的10个方法

  今天消费者网络购物的支出越来越多,可是太多的网站并没有考虑到他们网站和订购流程的易用性,最终导致用户很快就放弃了他们的订购。这里有10种可以提高你的电子商务网站易用性的方法,可以帮助你最大可能的提高网站的转化率,将用户的“购物篮里的商品”换为订单。

  1、用email来标识用户(登陆名)

  你曾经在网上购物中,用过多少不同的用户名作为账号?又用过多少不同的Email作为账号?我敢打赌,你不仅不同的Email用的很少,而且你会发现Email比用户名,更容易记忆。大多数情况下,用Email标识用户比用户名更好。因为Email容易记忆,更标准,这意味着你不必担心去记忆哪些乱七八糟的字符。他们永远是独一无二的,永远不会像用户名那样出现重名。

  2、将下订单的过程划分成几个大步骤(让用户一次处理一个任务)

  订购流程通常非常复杂,比较典型的场景可能包括: 用户输入一个配送地址,选择配送方式,选择输入支付方式,最后确认自己的订单。试图让用户在一个步骤里做完这些事会有问题,因为用户要输入太多的信息了!

  将这些步骤分解,让用户每次能处理一个步骤,确保每个步骤需要思考和输入的信息相对较少。

查看更多...

分类:网络开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 1858
#pragma once
#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;
        }
    }
};

分类:移动开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2929

PPC中检查某程序是否运行

第一种:
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是不太一样的.
分类:移动开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2638

window mobile 5.0截获来电

在开发来电防火墙或来电大头贴时,首先就是要截获来电,然后再加以分析,截获来电的方法一般就是用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 );

分类:移动开发 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2476

遗忘的命令

转化磁盘格式
format e: /fs:fat32
format e: /fs:ntfs
分类:杂七杂八 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 2393