预览模式: 普通 | 列表

Cygwin Easy 及其设置

Cygwin Easy是Cygwin的一个光盘版。用虚拟光驱加载后即可运行。
最新的是:http://linux.studenti.fastbull.org/linuxstudenti/Cygwin-Easy-2007.03.21.iso

Cygwin Easy的中文支持问题:

1.修改桌面\cygwin\.bashrc

# 让ls和dir命令显示中文和颜色 
alias dir='dir -N --color' 
alias less='/bin/less -r' 
alias ls='/bin/ls -F --color=tty --show-control-chars' 
 
# 设置为中文环境,使提示成为中文 
export LANG="zh_CN.GB2312" 
# 输出为中文编码 
export OUTPUT_CHARSET="GB2312" 

2.修改桌面\cygwin\.inputrc

# 支持输入中文 
set convert-meta off 
set input-meta on 
set output-meta on 

 

分类:杂谈随感 | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 136

在VC++中使用OCCI

 1.简介
Windows下访问Oracle数据库可以使用ADO,ADO.Net,OLEDB,ODBC,跨平台的OCCI等方法,其中速度最快,对Oracle支持最完整的是Oracle提供的OCCI.

2.安装OCCI SDK
OCCI SDK包含在Oracle客户端中,在如下位置可以找到:
头文件:C:\oracle\ora92\oci\include
库文件:C:\oracle\ora92\oci\lib\msvc
 
推荐安装Oracle即时客户端(Instant Client),它也包含有OCCI SDK
头文件:instantclient_10_2\sdk\include
库文件:instantclient_10_2\sdk\lib\msvc
 
3.编译OCCI程序
关于在VC下如何编译,调试OCCI程序,参见《VC++调试OCCI程序的关键设置
 
4.OCCI编程步骤
 
4.1 连接到数据库
 
//创建OCCI上下文环境
Environment *env = Environment::createEnvironment();
assert(env!=NULL);
 
//创建数据库连接
Connection *conn = env->createConnection("uid", "pwd","oracle_svr_name");
 
//...
// todo:插入自己的代码
 
//关闭连接
env->terminateConnection(conn);
//释放
Environment::terminateEnvironment(env);
 
4.2 执行基本的SQL语句
//创建SQL语句控制句柄
Statement *stmt = conn->createStatement();
 
a.执行一般的SQL语句
stmt->executeUpdate("Create TABLE basket_tab (fruit VARCHAR2(30), quantity NUMBER)");
stmt->executeUpdate("delete basket_tab");
 
b.重复利用SQL语句,参数化的SQL语句
//:1,:2是参数占位符
stmt->setSQL("Insert INTO basket_tab VALUES(:1,:2)");
// 第一个参数
stmt->setString(1, "Bananas");
// 第二个参数
stmt->setInt(2, 5);
stmt->executeUpdate();
 
 c.一次修改多行数据
//最多允许的迭代次数,注意这个参数需要在setXXX系列函数之前执行
stmt->setMaxIterations(int maxIterations);
//指定某个参数的大小,stringbyte需要
stmt->setMaxParamSize(int parameterIndex, int maxParamSize);
 
for(...)
{
    // 第一个参数
    stmt->setString(1, "Bananas");
    // 第二个参数
    stmt->setInt(2, 5);
 
    //増加一行记录,类似于ADOAddNew
    pStmt->addIteration();
}
 
stmt->executeUpdate();
 
d.执行查询:获取结果集(记录集)
ResultSet *rs = stmt->executeQuery("Select * FROM basket_tab");
while (rs->next())
{
    string fruit = rs->getString(1); // get the first column as string
    int quantity = rs->getInt(2); // get the second column as int
}
 
//关闭结果集
stmt->closeResultSet(rs);
 
e.执行存储过程
//指定存储过程countFruit
stmt->setSQL("BEGIN countFruit(:1, :2); END:");
//设置第一个参数
stmt->setString(1, "Apples");
 
int quantity;
//注册输出参数
stmt->registerOutParam(2, Type::OCCIINT, sizeof(quantity));
 
//执行此存储过程
stmt->executeUpdate();
 
//释放SQL语句控制句柄
conn->terminateStatement(Statement *stmt);
 
4.3 事务
所有的DDL默认开始并自动提交一个事务
所有的DML默认开始一个事务,且不会自动提交
 
//可以指定DML是否自动提交
stmt->setAutoCommit(TRUE/FALSE);
 
//也可以手动提交或回滚。
conn->commit();
conn->rollback();
 
4.4 异常处理
try
{
    //OCCI程序
}
catch (SQLException &sqlExcp)
{
    cerr <<sqlExcp.getErrorCode << ": " << sqlExcp.getErrorMessage() << endl;
}
catch (exception &excp)
{
    cerr << excp.what() << endl;
}
 
分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 272

VC++调试OCCI程序的关键设置

#define WIN32COMMON
//解决error C2995: 'getVector' : template function has already been defined

#include <occi.h>
using namespace oracle::occi;

#pragma comment(lib,"oci.lib")
#pragma comment(lib,"ociw32.lib")
#pragma comment(lib,"oraocci10.lib")

//解决无法调试OCCI的问题
//参考sdk\demo目录下的make.bat

对于VS2003:

1.项目属性 -> C/C++ -> 代码生成 -> 运行时库 -> 多线程调试 DLL (/MDd)
2.项目属性 -> 链接器 -> 输入 -> 附加依赖项 -> msvcrt.lib msvcprt.lib


对于VC++6.0
1.Project Settings -> C/C++ -> Code Generation -> Use run-time library: -> Debug Multithreaded DLL
2.Project Settings -> Link -> Object/library modules:末尾添加
msvcrt.lib msvcprt.lib 


分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 244

SVN服务器的创建

0.安装Subversion

可在http://subversion.tigris.org下载。

1.选定一个目录(例如:E:\SvnRepository)作为版本库的根目录。

2.创建自己项目的版本库(例如ProjTest),有两种方法:

a.用命令行创建版本库

svnadmin create --fs-type fsfs ProjTest

b.用TortoiseSVN创建版本库

在E:\SvnRepository目录下建立文件夹,命名为ProjTest,进入此文件夹,右键选择TortoiseSVN → 在此创建版本库...

3.本机模式使用此版本库

svn路径为:file:///E:/SvnRepository/ProjTest
本机模式,默认是允许匿名用户读写的。

4.网络使用此版本库

在Subversion中包含一个轻型的独立服务器svnserve,可以注册为Windows服务,具体方法如下:

a.安装svn服务:

@echo off
set BinPath=\"D:\Program Files\Subversion\bin\svnserve.exe\"
set RepositoryRootPath="E:\SvnRepository"
set DisplayName="Subversion Service"

sc create svnserve binPath= "%BinPath% --service --root %RepositoryRootPath%" DisplayName= %DisplayName% depend= tcpip start= auto
sc description svnserve "版本库(基于Subversion)"
net start %DisplayName%

b.启动服务:

@echo off
net start "Subversion Service"

c.停止服务:

@echo off
net stop "Subversion Service"

d.卸载服务:

@echo off
net stop "Subversion Service"
sc delete svnserve

查看更多...

分类:Win32&C++ | 固定链接 | 评论: 0 | 引用: 0 | 查看次数: 271