C++多线程获取occi连接池连接的时候是否要加互斥锁 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 50%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs9
本版专家分:93062
版主
Blank
黄花 2012年4月 C++ Builder大版内专家分月排行榜第二
2011年4月 C++ Builder大版内专家分月排行榜第二
2009年12月 C++ Builder大版内专家分月排行榜第二
2009年11月 C++ Builder大版内专家分月排行榜第二
2009年10月 C++ Builder大版内专家分月排行榜第二
2009年8月 C++ Builder大版内专家分月排行榜第二
2007年5月 C++ Builder大版内专家分月排行榜第二
2002年5月 C++ Builder大版内专家分月排行榜第二
2001年10月 C++ Builder大版内专家分月排行榜第二
Blank
蓝花 2013年5月 C++ Builder大版内专家分月排行榜第三
2012年7月 C++ Builder大版内专家分月排行榜第三
2012年5月 C++ Builder大版内专家分月排行榜第三
2011年5月 C++ Builder大版内专家分月排行榜第三
2011年3月 C++ Builder大版内专家分月排行榜第三
2010年12月 C++ Builder大版内专家分月排行榜第三
2010年10月 C++ Builder大版内专家分月排行榜第三
2010年1月 C++ Builder大版内专家分月排行榜第三
2009年9月 C++ Builder大版内专家分月排行榜第三
2009年7月 C++ Builder大版内专家分月排行榜第三
2009年6月 C++ Builder大版内专家分月排行榜第三
2009年5月 C++ Builder大版内专家分月排行榜第三
2006年3月 C++ Builder大版内专家分月排行榜第三
2005年9月 C++ Builder大版内专家分月排行榜第三
Bbs1
本版专家分:0
Bbs6
本版专家分:7967
多线程互斥锁
疑问:据说,<em>多线程</em>程序中,为了保证线程的顺序执行,可以使用<em>互斥锁</em>。我有一个疑问,假如想达到线程顺序执行的目标,为什么不直接使用单线程呢?<em>多线程</em>+<em>互斥锁</em>,就是进入某一个线程,锁起来,不让其他线程执行;等该线程执行完毕,解锁之后才可以执行其他线程。这和单线程有区别吗?还有,<em>多线程</em>是如何保证线程按顺序执行呢?假如某个线程中,并不是一进程序就加锁,而是加锁前有一段程序,那么<em>多线程</em>之间,那个先执行还不好说。比
多线程——互斥锁
<em>互斥锁</em>的作用:保证同一时间只有一个线程访问共享的数据 <em>互斥锁</em>尽可能锁住关键的代码即可 self可以是任何NSObject的对象 <em>互斥锁</em>必须是所有线程能访问的对象 建议:如果只有一个地方使用到<em>互斥锁</em>,一般直接写self,可以省去一个变量 模拟卖票场景- (void)sellTicket { while (YES) { // 模拟延时 [NSThr
请问这种情况是否需要加互斥锁
两个进程,共享内存通信。操作就是memcpy(p,pShareMem,iLength);一个进程读,另一个写。rn<em>是否</em>有必要写成:rn进程Arnm_Mutex.lock();rnmemcpy(pRecv,pShareMem,iLength);rnm_Mutex.unlock();rn进程B:rnm_Mutex.lock();rnmemcpy(pShareMem,pSend,iLength);rnm_Mutex.unlock();rn感觉memcpy编译到汇编的话,也就mov一句话吧。有必要互斥吗?互斥的开销还挺大的rn
Oracle10g occi 连接创建方法
Oracle10g <em>occi</em> <em><em>连接</em>池</em>创建方法Oracle10g <em>occi</em> <em><em>连接</em>池</em>创建方法
occi 怎么去获取连接状态
<em>occi</em> 怎么去<em>获取</em><em>连接</em>状态,就是随时判断<em>是否</em><em>连接</em>上了,别告诉我用执行SQL语句去判断。我要好点方法?
C 学习记录-结构体与多线程/互斥锁
一,结构体结构也是一种数据类型,他是由基本数据类型构成的、并用一个标志符来命名的各种变量的组合;struct 结构名{    类型 变量名;    类型 变量名;    ...}结构变量; 结构名是结构的标志符,不是变量名;struct string      {           char name[8];           int age;           char sex[2];  ...
C/C++多线程、线程同步(互斥锁与信号量)
参考链接2.中写的非常好,简单易懂,上手快,非常好的博文。使用<em>多线程</em>及<em>互斥锁</em>样例:#include &amp;lt;iostream&amp;gt; #include &amp;lt;windows.h&amp;gt; using namespace std; HANDLE hMutex = NULL;//互斥量 //线程函数 DWORD WINAPI Fun(LPVOID lpParamter) { for (int...
OpenSSL多线程互斥锁
static pthread_mutex_t *crypto_lock = NULL; static pthread_t pthread_id_cb() { return pthread_self(); } static void pthread_locking_cb(int mode, int n, const char *file, int line) { if(mode
多线程互斥锁Pthread_mutex_t
<em>多线程</em><em>互斥锁</em>Pthread_mutex_t <em>互斥锁</em>创建,加锁pthread_mutex_lock,解锁pthread_mutex_unlock,尝试加锁pthread_mutex_trylock,撤销pthread_mutex_destory
linux多线程互斥锁的简单使用
过程: 首先定义一个<em>互斥锁</em>变量;然后初始化该<em>互斥锁</em>pthread_mutex_init; 使用临界区资源的<em>时候</em>首先<em>获取</em>该锁pthread_mutex_lock(如果无法<em>获取</em>资源则线程会阻塞,直到该资源可以使用),对临界区资源使用完<em>时候</em>释放该<em>互斥锁</em>pthread_mutex_unlock; 实例1:不使用<em>互斥锁</em>,多个线程输出,此时的效果是多个线程是并行输出的,没有对资源
iOS 多线程~互斥锁
//联系人:石虎  QQ: 1224614774昵称:嗡嘛呢叭咪哄 一、<em>互斥锁</em>的使用   @synchronized(锁对象) { // 需要锁定的代码  }; 二、<em>互斥锁</em>的优缺点 优点:能有效防止因<em>多线程</em>抢夺资源造成的数据安全问题 缺点:需要消耗大量的CPU资源 <em>互斥锁</em>的使用前提:多条线程抢夺同一块资源的<em>时候</em>使用。
Qt多线程:使用互斥锁
1、官方文档: QMutex类提供线程间的访问序列化。 QMutex的目的是保护一个对象、数据结构或代码片段, 这样每次只有一个线程可以访问它(这类似于Java synchronized关键字)。 通常最好将互斥对象与QMutexLocker一起使用,因为这样可以很容易地确保一致地执行锁定和解锁。 2、官方示例: QMutex mutex; int number = 6; v...
多线程互斥锁信号量
例1:线程加锁import threading import time num=0 def run(n): lock.acquire() global num num+=1 print(&quot;task start&quot;,n) time.sleep(2) print(&quot;task done=&amp;gt;&quot;,n,'num=%d'%num) print(thre...
多任务编程,线程,多线程互斥锁
回顾: 进程时最小的资源分配单位 1.线程 线程时最小的执行单位 线程也是实现多任务的一种方式 一个程序在执行时会对应一个主进程,主进程中会有一个主线程 通过主线程手动产生的线程称为子线程 2.<em>多线程</em>的使用 1.导入模块 import threading 2.实现多任务的功能函数 def 3.创建线程 线程名 = threading.Thread(target=定义的函数名) 4.启动线程 子线程...
多线程互斥锁和条件变量demo
基于<em>多线程</em>,学习<em>互斥锁</em>和pthread_cond_wait条件变量实现的demo, 初学者学习。
C++——多线程互斥锁
#include&amp;amp;lt;Windows.h&amp;amp;gt; #include&amp;amp;lt;iostream&amp;amp;gt; using namespace std; DWORD WINAPI MyThread2(LPVOID lpParamter) { while (1) { cout &amp;amp;lt;&amp;amp;lt; &amp;quot;MyThread2 Runing&amp;quot; &amp;amp;lt;
QT多线程互斥锁
版权声明:本文为博主原创文章,转载请注明出处。 https://blog.csdn.net/hechao3225/article/details/53033993 &amp;lt;/div&amp;gt; &amp;lt;link rel=&quot;stylesheet&quot; href=&quot;https://csdnimg.cn/release/phoeni...
多线程互斥锁的一个问题
[code=c]rnrnvoid attempt_10k_increaces(int& counter)rnrn std::mutex mtx;rn for (int i=0; i<< "In " << i << " C is " << counter << ", "; // (1)rn mtx.unlock();rn rnrnrnint main()rnrn int counter = 0;rn rn std::thread threads[10];rnrn for (int i=0; i<< "Final value of counter is : " << counter << std::endl;rnrn system("pause");rnrn return 1;rnrn[/code]rnrn为何这样counter达不到10K?rnlock()不是会一直堵塞吗?rn但是如果把(1)cout 那句注释去掉, 经过一段时间的输出字符串等待, counter每次就都会到达10k.rnrnrn
redis用连接获取连接
import java.util.List; import redis.clients.jedis.Jedis; import redis.clients.jedis.JedisPool; import redis.clients.jedis.JedisPoolConfig; public class Redis { public static void main(String[] ar
Linux多线程下的互斥锁
POSIX标准下<em>互斥锁</em>是pthread_mutex_t,与之相关的函数有: 1 int pthread_mutex_init(pthread_mutex_t * mutex , pthread_mutexattr_t * attr); 2 int pthread_mutex_destroy (pthread_mutex_t * mutex); 3 int pthread_mutex_lock
Linux下c++多线程互斥锁
一、<em>多线程</em> <em>多线程</em>使用的是pthread库,写程序的<em>时候</em>需要引入头文件pthread.h, g++编译的<em>时候</em>需要加上该库的依赖“-lpthread”。 1 先看程序便于理解,代码下面有对注释的解释。下面的代码含义是创建两个线程,一个线程去计算某个变量的阶乘,另一个去计算从0到某个变量的和#include #include #include <stri
Linux多线程互斥锁
#include &amp;lt;stdio.h&amp;gt; #include &amp;lt;pthread.h&amp;gt; #include &amp;lt;unistd.h&amp;gt; pthread_mutex_t thread_mutex; int global_val = 0; void *thread1(void *arg){     while(1){         pthread_mutex_lock(&amp;a...
c++ 多线程 锁(互斥锁)
<em>多线程</em>程序,如果涉及到对共享资源的并发读写,就会产生资源争用(Data Race)。解决资源争用,最直接的想法是引入锁,对并发读写的数据进行保护(更高级的则包括无锁编程—— Lock Free Programming)。但是,锁又有很多种类,例如:自旋锁(Spinlock)、<em>互斥锁</em>(Mutex)、读写锁(Read-Write-Lock)等等。 开发过程中,对于<em>多线程</em>的情况下,单个基础数据类型的数...
C++11多线程互斥锁的使用
#include #include #include #include #include #include #include // 参考:http://www.cnblogs.com/haippy/p/3284540.html namespace thread_lock { std::mutex g_io_mutex; //------------------------
【Linux多线程】线程同步之互斥锁
<em>互斥锁</em>概念:锁机制是同一时刻只允许一个线程执行一个关键部分的代码。 执行步骤说明 1. 初始化锁 int pthread_mutex_init(pthread_mutex_t *mutex,const pthread_mutex_attr_t *mutexattr); 其中参数 mutexattr 用于指定锁的属性(见下),如果为NULL则使用缺省属性。 <em>互斥锁</em>的属性在创建锁的<em>时候</em>指定,在Li...
多线程(JDK1.5的新特性互斥锁
<em>多线程</em>(JDK1.5的新特性<em>互斥锁</em>)(掌握) * 1.同步     * 使用ReentrantLock类的lock()和unlock()方法进行同步  * 2.通信     * 使用ReentrantLock类的newCondition()方法可以<em>获取</em>Condition对象     * 需要等待的<em>时候</em>使用Condition的await()方法, 唤醒的<em>时候</em>用signal()方法     * 不同的...
Python 多线程资源竞争及互斥锁
demo import threading import time g_num = 0 def fun_add_01(num): global g_num for i in range(num): g_num += 1 print(g_num) def fun_add_02(num): global g_num for i in r...
occi 连接连接失效
<em>连接</em>失效导致进程卡死。 过好久才能入库成功或者捕获异常,请问有什么办法能解决问题rn这个是创建<em><em>连接</em>池</em>代码rn[code=c]bool OraConnPool::createConnPool(const std::string& username, const std::string& passwd, const std::string& connectString, int maxCon, int minCon, int incrCon)rnrn this->username = username;rn this->password = passwd;rn this->connstring = connectString;rn this->maxCon = maxCon;rn this->minCon = minCon;rn this->incrCon = incrCon;rn setenv("NLS_LANG", "SIMPLIFIED CHINESE_CHINA.ZHS32GB18030", 1);rn //setenv("NLS_LANG", "american_america.AL32UTF8", 1);rn sErrInfo="";rnrn tryrn rn //env = Environment::createEnvironment(Environment::DEFAULT);rn env = Environment::createEnvironment(Environment::Mode(Environment::OBJECT|Environment::THREADED_MUTEXED));rn if (env == NULL)rn rn sErrInfo="CreateConnpool Error!";rn return false;rn rn rnrn scp = env->createStatelessConnectionPool(username.c_str(), passwd.c_str(), connectString.c_str(), maxCon, minCon, incrCon, StatelessConnectionPool::HOMOGENEOUS);rn scp ->setTimeOut(10000);rn if (scp == NULL)rn rn Environment::terminateEnvironment(env);rn sErrInfo="Connection oracle error!";rn return false;rn rnrn sErrInfo="CreateConnpool success! ";rn return true;rn rn catch(SQLException ex)rn rn sErrInfo=ex.getMessage().c_str();rn rn return false;rn[/code]rnrn这是<em>获取</em><em>连接</em>代码rn[code=c]rnConnection* OraConnPool::getConnection()rnrn Connection * pConn = NULL;rn pConn = scp->getConnection();rn rn return pConn;rnrn[/code]rnrn这个是classrn[code=c]class OraConnPoolrnrnprotected:rn OraConnPool();rn rnpublic:rn bool createConnPool(const std::string& username, const std::string& passwd, const std::string& connectString, int maxCon, int minCon, int incrCon);rn bool reCreateConnPool();rn void destroyConnPool();rn string getErrData(void);rn rn Connection * getConnection();rn void freeConnection(Connection*);rn rn static OraConnPool* getInstance();rn bool checkConnect();rn ~OraConnPool();rnprivate:rn Environment * env;rn StatelessConnectionPool * scp;rn string sErrInfo;rn static OraConnPool* _instance;rn std::string username;rn std::string password;rn std::string connstring;rn int maxCon;rn int minCon;rn int incrCon;rn;[/code]
使用Occi连接Oracle数据库
1、首先应该创建环境变量:Environment类是OCCI程序的基础类,所有的OCCI对象的建立都是依计Environment对象来创建的,所以Environment对象的建立必须放在第一位,而且也必须是最后一个被终止的。例如:首先创建一个Environment对象env,然后通过env创建一个Connection对象conn,conn是<em>连接</em>了数据库的对象;终止时,却反过来先终止对象conn,再...
occi编译,连接问题
我的gcc为 3.4.6版本的 。oracle数据库为 oracle10.2.0.4 版的rn我下载了rnoracle-instantclient-devel-10.2.0.4-1.i386.ziprnoracle-instantclient-basic-10.2.0.4-1.i386.ziprn解压到:rn/home/zjg/oracle_<em>occi</em>/instantclient_10_2目下rn/home/zjg/oracle_<em>occi</em>/instantclient_10_2目录下的内容为:rn -rwxrwxrwx 1 root zjg 238 Feb 17 2008 BASIC_READMErn -rwxrwxrwx 1 root zjg 1609607 Feb 17 2008 classes12.jarrn -rwxrwxrwx 1 root zjg 67766 Feb 17 2008 genezirn -rwxrwxrwx 1 root zjg 1525 Feb 17 2008 glogin.sqlrn lrwxrwxrwx 1 root root 17 Jan 25 12:25 libclntsh.so -> libclntsh.so.10.1rn -rwxrwxrwx 1 root zjg 19076649 Feb 17 2008 libclntsh.so.10.1rn -rwxrwxrwx 1 root zjg 5656445 Feb 17 2008 libnnz10.sorn lrwxrwxrwx 1 root root 15 Jan 25 12:24 lib<em>occi</em>.so -> lib<em>occi</em>.so.10.1rn -rwxrwxrwx 1 root zjg 1398244 Feb 17 2008 lib<em>occi</em>.so.10.1rn -rwxrwxrwx 1 root zjg 72698427 Feb 17 2008 libociei.sorn -rwxrwxrwx 1 root zjg 120443 Feb 17 2008 libocijdbc10.sorn -rwxrwxrwx 1 root zjg 1434263 Feb 17 2008 libsqlplusic.sorn -rwxrwxrwx 1 root zjg 1069221 Feb 17 2008 libsqlplus.sorn -rwxrwxrwx 1 root zjg 1555682 Feb 17 2008 ojdbc14.jarrn drwxrwxr-x 4 root root 4096 Feb 17 2008 sdkrn -rwxrwxrwx 1 root zjg 8903 Feb 17 2008 sqlplusrn -rwxrwxrwx 1 root zjg 242 Feb 17 2008 SQLPLUS_READMErnrn/home/zjg/oracle_<em>occi</em>/instantclient_10_2/sdk目录下的内容为rn drwxrwxr-x 2 root root 4096 Jan 25 12:17 demorn drwxrwxr-x 2 root root 4096 Feb 17 2008 includern -rwxrwxr-x 1 root root 738 Feb 17 2008 ottrn -rw-rw-r-- 1 root root 298277 Feb 17 2008 ottclasses.ziprn -rw-rw-r-- 1 root root 234 Feb 17 2008 SDK_READMErnrn/home/zjg/oracle_<em>occi</em>/instantclient_10_2/sdk/include目录下的内容为rn -r--r--r-- 1 root root 33230 Feb 17 2008 nzerror.hrn -r--r--r-- 1 root root 85310 Feb 17 2008 nzt.hrn -r--r--r-- 1 root root 11600 Feb 17 2008 <em>occi</em>AQ.hrn -r--r--r-- 1 root root 38724 Feb 17 2008 <em>occi</em>Common.hrn -r--r--r-- 1 root root 73063 Feb 17 2008 <em>occi</em>Control.hrn -r--r--r-- 1 root root 35218 Feb 17 2008 <em>occi</em>Data.hrn -r--r--r-- 1 root root 2115 Feb 17 2008 <em>occi</em>.hrn -r--r--r-- 1 root root 29307 Feb 17 2008 <em>occi</em>Objects.hrn -r-xr-xr-x 1 root root 7155 Feb 17 2008 oci1.hrn -r--r--r-- 1 root root 10361 Feb 17 2008 oci8dp.hrn -r--r--r-- 1 root root 411221 Feb 17 2008 ociap.hrn -r-xr-xr-x 1 root root 6055 Feb 17 2008 ociapr.hrn -r--r--r-- 1 root root 43225 Feb 17 2008 ocidef.hrn -r-xr-xr-x 1 root root 4014 Feb 17 2008 ocidem.hrn -r--r--r-- 1 root root 11331 Feb 17 2008 ocidfn.hrn -r--r--r-- 1 root root 8954 Feb 17 2008 ociextp.hrn -r--r--r-- 1 root root 152599 Feb 17 2008 oci.hrn -r-xr-xr-x 1 root root 6638 Feb 17 2008 ocikpr.hrn -r--r--r-- 1 root root 4351 Feb 17 2008 ocixmldb.hrn -r--r--r-- 1 root root 19099 Feb 17 2008 odci.hrn -r-xr-xr-x 1 root root 6605 Feb 17 2008 oratypes.hrn -r--r--r-- 1 root root 15031 Feb 17 2008 orid.hrn -r--r--r-- 1 root root 102726 Feb 17 2008 ori.hrn -r--r--r-- 1 root root 157674 Feb 17 2008 orl.hrn -r--r--r-- 1 root root 42626 Feb 17 2008 oro.hrn -r--r--r-- 1 root root 116591 Feb 17 2008 ort.hrn -r-xr-xr-x 1 root root 9520 Feb 17 2008 xa.hrnrn我把/home/zjg/oracle_<em>occi</em>/instantclient_10_2/sdk/include目录映射到了rn/usr/local/include/<em>occi</em> 上,rn命令用的是:rn cd /usr/local/includern ln -s /home/zjg/oracle_<em>occi</em>/instantclient_10_2/sdk/include <em>occi</em>rnrnrn写一个类,测试rn/*rn * COcciDb.hrn *rn * Created on: 2009-12-29rn * Author: zhangjgrn */rnrn#ifndef COCCIDB_H_rn#define COCCIDB_H_rn#include rn#include rn#include rn#include rn#include rn#include rn#include rn#include rnusing namespace oracle::<em>occi</em>;rnusing namespace std;rnnamespace gateway rnclass COcciDb rn public:rn COcciDb();rn COcciDb(string usr, string passwd, string db);rn virtual ~COcciDb();rn static COcciDb* getInstance(string usr, string passwd, string db);rn int getConnectCount() return _Instance->count; ;rn Connection* getConnect() count++;return _Instance->conn; ;rn private:rn static COcciDb* _Instance;rn static int count;rn Environment *env;rn Connection *conn;rn;rnrnrn#endif /* COCCIDB_H_ */rnrn.......................rnrn编译参数添加了 -L /home/zjg/oracle_<em>occi</em>/instantclient_10_2 -l<em>occi</em> -lclntshrnrn然后在linux上编译,报下面这样的错,rnrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:286: error: `OCI_SUBSCR_PROTO_HTTP' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:286: error: enumerator value for `PROTO_HTTP' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:289: error: `OCI_SUBSCR_NAMESPACE_ANONYMOUS' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:289: error: enumerator value for `NS_ANONYMOUS' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:291: error: `OCI_SUBSCR_NAMESPACE_AQ' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:291: error: enumerator value for `NS_AQ' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:294: error: `OCISubscription' has not been declaredrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:322: error: expected `;' before '*' tokenrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:344: error: expected `;' before '*' tokenrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:345: error: `ub4' does not name a typern/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:349: error: `ub4' has not been declaredrn/usr/local/include/<em>occi</em>/<em>occi</em>AQ.h:350: error: `ub4' has not been declaredrnIn file included from ../src/comm/oracle/COcciAccessor.h:17,rn from ../src/comm/oracle/COcciAccessor.cpp:8:rn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:183: error: `OCI_ATTR_PTYPE' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:183: error: enumerator value for `ATTR_PTYPE' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:184: error: `OCI_ATTR_TIMESTAMP' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:184: error: enumerator value for `ATTR_TIMESTAMP' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:185: error: `OCI_ATTR_OBJ_ID' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:185: error: enumerator value for `ATTR_OBJ_ID' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:186: error: `OCI_ATTR_OBJ_NAME' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:186: error: enumerator value for `ATTR_OBJ_NAME' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:187: error: `OCI_ATTR_OBJ_SCHEMA' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:187: error: enumerator value for `ATTR_OBJ_SCHEMA' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:188: error: `OCI_ATTR_OBJID' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:188: error: enumerator value for `ATTR_OBJID' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:189: error: `OCI_ATTR_NUM_COLS' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:189: error: enumerator value for `ATTR_NUM_COLS' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:190: error: `OCI_ATTR_LIST_COLUMNS' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:190: error: enumerator value for `ATTR_LIST_COLUMNS' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:191: error: `OCI_ATTR_REF_TDO' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:191: error: enumerator value for `ATTR_REF_TDO' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:192: error: `OCI_ATTR_IS_TEMPORARY' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:192: error: enumerator value for `ATTR_IS_TEMPORARY' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:193: error: `OCI_ATTR_IS_TYPED' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:193: error: enumerator value for `ATTR_IS_TYPED' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:194: error: `OCI_ATTR_DURATION' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:194: error: enumerator value for `ATTR_DURATION' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:195: error: `OCI_ATTR_COLLECTION_ELEMENT' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:195: error: enumerator value for `ATTR_COLLECTION_ELEMENT' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:196: error: `OCI_ATTR_RDBA' was not declared in this scopern/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:196: error: enumerator value for `ATTR_RDBA' not integer constantrn/usr/local/include/<em>occi</em>/<em>occi</em>Control.h:197: error: `OCI_ATTR_TABLESPACE' was not declared in this scopern..................rnrn我不知我的配置哪里有问题?rn
java if 是否要加花括号
2楼 java2000.net if () 后面不使用花括号时,里面不能出现声明,因为那个涉及到作用域,而没有花括号又没有作用域了。 个人理解。 boolean ok = true; if(ok) MyClass c = new MyClass(); 这样也是不允许的。 改成 MyClass c = null; if(ok) c =...
occi 连接的问题
我在cenos4.6上装了oracle10.2, oracle的安装目录为rnoracle 用户.bash_profile的配置内容如下:rn PATH=$PATH:$HOME/binrn export PATHrn unset USERNAMErn export ORACLE_BASE=/u01/app/oraclern export ORACLE_HOME=$ORACLE_BASE/10.2.0/db_1rn export ORACLE_SID=orclrn export PATH=$PATH:$ORACLE_HOME/binrn export LANG=en_USrn/etc/profile配置文件的内容如下:rn export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$ORACLE_HOME/librn在/u01/app/oracle/10.2.0/db_1/lib 目录下有lib<em>occi</em>.so.10.1 ... 等文件rn在/u01/app/oracle/10.2.0/db_1/rdbms/public/目录下有 <em>occi</em>.h ...等头文件rn我用 ln -s /u01/app/oracle/10.2.0/db_1/rdbms/public/ /usr/locl/includ 建了一个<em>连接</em>rnrn写了一个类,头文件如下:rn#ifndef COCCIDB_H_rn#define COCCIDB_H_rn#include rn#include rn#include "<em>occi</em>/<em>occi</em>.h"rn#include "<em>occi</em>/<em>occi</em>Common.h"rn#include "<em>occi</em>/<em>occi</em>Data.h"rn#include "<em>occi</em>/<em>occi</em>Objects.h"rn#include "<em>occi</em>/<em>occi</em>AQ.h"rn#include "<em>occi</em>/<em>occi</em>Control.h"rnusing namespace oracle::<em>occi</em>;rnusing namespace std;rnnamespace gateway rnclass COcciDb rnpublic:rn COcciDb();rn COcciDb(string usr, string passwd, string db);rn virtual ~COcciDb();rn static COcciDb* getInstance(string usr, string passwd, string db);rn int getConnectCount() return _Instance->count; ;rn Connection* getConnect() count++;return _Instance->conn; ;rnprivate:rn static COcciDb* _Instance;rn static int count;rn Environment *env;rn Connection *conn;rn;rnrnrnrn#endif /* COCCIDB_H_ */rnrnrn想编译一下这个类,报一大堆错:rnrn/usr/include/<em>occi</em>/<em>occi</em>AQ.h:322: error: expected `;' before '*' tokenrn/usr/include/<em>occi</em>/<em>occi</em>AQ.h:344: error: expected `;' before '*' tokenrn/usr/include/<em>occi</em>/<em>occi</em>AQ.h:345: error: `ub4' does not name a typern/usr/include/<em>occi</em>/<em>occi</em>AQ.h:349: error: `ub4' has not been declaredrn/usr/include/<em>occi</em>/<em>occi</em>AQ.h:350: error: `ub4' has not been declaredrnIn file included from ../src/comm/oracle/COcciAccessor.h:17,rn from ../src/comm/oracle/COcciAccessor.cpp:8:rn/usr/include/<em>occi</em>/<em>occi</em>Control.h:183: error: `OCI_ATTR_PTYPE' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:183: error: enumerator value for `ATTR_PTYPE' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:184: error: `OCI_ATTR_TIMESTAMP' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:184: error: enumerator value for `ATTR_TIMESTAMP' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:185: error: `OCI_ATTR_OBJ_ID' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:185: error: enumerator value for `ATTR_OBJ_ID' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:186: error: `OCI_ATTR_OBJ_NAME' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:186: error: enumerator value for `ATTR_OBJ_NAME' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:187: error: `OCI_ATTR_OBJ_SCHEMA' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:187: error: enumerator value for `ATTR_OBJ_SCHEMA' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:188: error: `OCI_ATTR_OBJID' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:188: error: enumerator value for `ATTR_OBJID' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:189: error: `OCI_ATTR_NUM_COLS' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:189: error: enumerator value for `ATTR_NUM_COLS' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:190: error: `OCI_ATTR_LIST_COLUMNS' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:190: error: enumerator value for `ATTR_LIST_COLUMNS' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:191: error: `OCI_ATTR_REF_TDO' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:191: error: enumerator value for `ATTR_REF_TDO' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:192: error: `OCI_ATTR_IS_TEMPORARY' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:192: error: enumerator value for `ATTR_IS_TEMPORARY' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:193: error: `OCI_ATTR_IS_TYPED' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:193: error: enumerator value for `ATTR_IS_TYPED' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:194: error: `OCI_ATTR_DURATION' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:194: error: enumerator value for `ATTR_DURATION' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:195: error: `OCI_ATTR_COLLECTION_ELEMENT' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:195: error: enumerator value for `ATTR_COLLECTION_ELEMENT' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:196: error: `OCI_ATTR_RDBA' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:196: error: enumerator value for `ATTR_RDBA' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:197: error: `OCI_ATTR_TABLESPACE' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:197: error: enumerator value for `ATTR_TABLESPACE' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:198: error: `OCI_ATTR_CLUSTERED' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:198: error: enumerator value for `ATTR_CLUSTERED' not integer constantrn/usr/include/<em>occi</em>/<em>occi</em>Control.h:199: error: `OCI_ATTR_PARTITIONED' was not declared in this scopern/usr/include/<em>occi</em>/<em>occi</em>Control.h:199: error: enumerator value for `ATTR_PARTITIONED' not integer constantrn/usr/irn。。。。。。。。。。。。。。。。rn大家帮忙给看一下,我的配置哪里有问题,应该怎么做
oracle occi连接问题
VS2008 ORACLE11G rnrnrnEnvironment *env = Environment::createEnvironment();rnrn Connection *conn = env->createConnection( userName, password);rnrn到这里就报错Unhandled exception at 0x75219617 in Oracle_<em>occi</em>.exe: Microsoft C++ exception: oracle::<em>occi</em>::SQLException at memory location 0x0026fb64..rnrn到底是怎么回事啊....
occi技术连接oracle数据库
VC++如何<em>连接</em>数据库,以及增删查改源码提供,希望对大家有所帮助
vc occi连接Oracle数据库
<em>occi</em><em>连接</em>Oracle数据库 在<em>获取</em>记录集后怎么向前移动游标,<em>获取</em>数据. next() 只能向下移动啊.
occi API C/C++
<em>occi</em> api 每个类都有详细说明,比较详尽 开发神器 包含C++调用的所有接口
occi连接问题,createConnection在连接之外又建立了数据库连接
Environment * m_env=Environment::createEnvironment(Environment::DEFAULT);rnConnectionPool *m_connPool = m_env->createConnectionPool("aaa","bbb","",3,4,1);rn//至此运行成功,监控数据库<em>连接</em>多了3个。rnrn//下面三句,数据库<em>连接</em>又多了3个,<em>连接</em>数已达到6个。为何未用<em><em>连接</em>池</em>中3个中的一个???rnConnection *conn1 = m_connPool->createConnection("aaa","bbb");rnConnection *conn2 = m_connPool->createConnection("aaa","bbb");rnConnection *conn3 = m_connPool->createConnection("aaa","bbb");rnrn//rnm_connPool->terminateConnection(conn1);rnm_connPool->terminateConnection(conn2);rnm_connPool->terminateConnection(conn3);rn//新建3个<em>连接</em>断开成功。rnrnm_env->terminateConnectionPool(m_connPool);rnEnvironment::terminateEnvironment(m_env);rn//断开<em><em>连接</em>池</em>与环境皆成功。rnrn环境:linux as4。自带gcc,版本3.4.6。oracle10g,lib<em>occi</em>10a、lib<em>occi</em>.so.10.1已升级到2005.12.6发布的,原安装盘安装的日期为2005.6.28。
连接oracle数据库,执行dml语句是否要加commit
通过引用oracleclient.dll,使用ado.net执行dml语言(insert\update\delete)时,ado.net中<em>是否</em>默认自动提交(commit)?rnrn<em>是否</em>要在执行的DMLSQL语句中加入COMMIT ?rnrn如果不是,请教如何编写,自动提交?rnrn谢谢!rnrnrnrn
多线程-threading 互斥锁 死锁 ThreadLocal
<em>多线程</em>并发花费时间要短 创建好的线程,需要调用start()启动 import threading import time start = time.time() for i in range(5): t = threading.Thread(target=prt) t.start() end = time.time() print(end-start) # print(threading.enu...
c++多线程互斥锁打印AABB
#include&lt;stdio.h&gt; #include&lt;unistd.h&gt; #include&lt;stdlib.h&gt; #include&lt;pthread.h&gt; #define COUNT 10 static int i = 1; pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER; void* ...
Java多线程中的对象互斥锁
1、为什么会有锁? 在看线程同步的问题之前,我们先看一个生活中的小例子: 我拿着银行卡去ATM取钱,假如我的卡里有3000块,我要取走2000,这个<em>时候</em>,ATM会去银行的数据库里查询我的账户<em>是否</em>有2000以上的余额,如果有,就会让我取走,不幸的是,这个<em>时候</em>,我女朋友也来银行取钱,只不过她在前台取钱,她直接取走了3000,这个<em>时候</em>我的卡里已经没钱了,而我也肯定也不能取出2000了。 我们
关于socket多线程互斥锁的问题?
如果我在程序中有两个线程A和B,然后初始化了两个<em>互斥锁</em>,比如pthread_mutex_t mutexA,mutexB;rn我在A中用mutexA,B中用mutexB.rn是不是如果我程序先遇到mutexA,是不是B线程也就挂起了?rn还是我遇到mutexA,对B线程没影响?rnrn我有这个想法,是因为我想在程序运行时对单一句柄进行互斥,而其他句柄并不影响。比如句柄1,A线程写句柄1时和B线程写句柄1时,互斥,但是其他线程对其他句柄照样可以读。
多线程29-自旋锁、互斥锁对比
得遇名师,突飞猛进!iOS培训王者MJ(李明杰)老师精心研发,iOS进阶课程,实用技术不断的更新和升级,更快帮助职场人士在开发领域脱颖而出。远程视频教学,无须长途奔袭,碎片化时间学习,成长随时随地!
为什么要加extern "C"?
刚才去新浪面试了,有两个基础的题不会答,基础不扎实啊。rn1、在C++中调用C编译器的函数为什么要加extern "C"rn2、char * strcpy(char *strDest,const str *strSrc);rn为什么要返回char *?
java:多线程(JDK1.5的新特性互斥锁)
* 1.同步     * 使用ReentrantLock类的lock()和unlock()方法进行同步 * 2.通信     * 使用ReentrantLock类的newCondition()方法可以<em>获取</em>Condition对象     * 需要等待的<em>时候</em>使用Condition的await()方法, 唤醒的<em>时候</em>用signal()方法     * 不同的线程使用不同的Condition, 这样就能区分...
linux程序多线程互斥锁的简单使用
首先定义一个<em>互斥锁</em>变量;然后初始化该<em>互斥锁</em>pthread_mutex_init; 使用临界区资源的<em>时候</em>首先<em>获取</em>该锁pthread_mutex_lock(如果无法<em>获取</em>资源则线程会阻塞,直到该资源可以使用),对临界区资源使用完<em>时候</em>释放该<em>互斥锁</em>pthread_mutex_unlock;
多线程互斥锁与信号量的区别
在使用<em>多线程</em>的过程中对于<em>互斥锁</em>和信号量使用比较迷糊,不知道二者有什么区别,都能保证线程互斥,现做以下说明: “信号量是一个线程完成了某一任务就通过信号量告诉别的线程,别的线程再进行某些动作。而<em>互斥锁</em>是用在<em>多线程</em>多任务互斥的,一个线程占用了某一个资源,那么别的线程就无法访问,直到这个线程unlock,其他的线程才开始可以利用这 个资源。比如对全局变量的访问,有时要加锁,操作完了,在解锁。有的<em>时候</em>锁...
多线程信号量,互斥锁,条件变量异同
<em>多线程</em>常见的几种同步方式分为以下几点: 只是阐述相关性,具体代码逻辑,网上一抓一大片,再次不在详述。 1、信号量:主要用于线程之间的数据同步,比如A线程数据处理完成之后会立马通知B线程进行相应的操作。常见的信号有两种一种是二进制信号,只有0和1两种状态,这种情况下类似于<em>互斥锁</em>,另一种就是整型信号,在不为0的情况下则可以<em>获取</em>到信号,进行操作,每次操作完则进行信号减1,直到为0的<em>时候</em>才会处于阻塞。
多线程_互斥锁解决买票问题
在这个网站介绍了<em>多线程</em>的安全隐患http://blog.csdn.net/u012745229/article/details/50939252 买票问题 使用<em>互斥锁</em>: @interface ViewController ()//总票数@property(nonatomic,assign)int tickets;@end-(void)touchesBegan:(NSSet
java 多线程synchronized互斥锁demo
一个<em>多线程</em>访问的同一个资源,java synchronized<em>互斥锁</em>的用法,android和此用法一致。
使用Occi连接Oracle数据库的配置
1、首先注意<em>occi</em>库是64位还是32位,一定要和IDE的环境匹配好,同时和vs的版本也要匹配!2、Oracle C++ Call Interface - Downloads的下载地址:Oracle C++ Call Interface下载地址3、我是直接安装了 64位 Oracle 11g,安装完后就有配置需要的头文件和库文件,我的目录如下:头文件目录:H:\app\admin\product\...
Linux平台下 OCCI 连接 Oracle数据库的链接错误
Linux平台下 OCCI <em>连接</em> Oracle数据库的链接错误 rnrn 本人在linux平台下使用eclipse做数据库的开发,在<em>连接</em>oracle数据库时出现了一个问题,希望各位linxu平台下开发高手给予指导。rnrn由于我以前一直是在windows平台下做开发,所以对linux环境很是陌生。最开始的<em>时候</em>,我查看网上的资料,说是linux平台下使用<em>occi</em><em>连接</em>oracle是比较好的选择,所以就使用了<em>occi</em>,但是刚开始碰到的问题跟我下面描述的问题基本是一样的,网上的兄弟们说那是因为老版的<em>occi</em>是用低版本的gcc编译器编译的,可能是因为不兼容导致,所以我昨天在oracle的官网下了一个最新的<em>occi</em>包,覆盖以后还是问题依旧,以下是安装包的自述文件rnrnThese files are required to build OCCI applications using therngcc version 3.4.3 compiler on RedHat Linux (x86_64) AS 4.0.rnThe OCCI libraries shipped in the 10.2.0.3.0 releasernare built with gcc 3.2.3 and are incompatible with gcc 3.4.3. rnThese support files are for the Oracle 10.2.0.3.0 release for rnLinux X86_64. Since gcc binaries are compatible accross 3.4.3rnand 4.0.1 versions, this patch can be applied for gcc 4.0.1 rnalso.rnrnInstallation Instructionsrn-------------------------rn1) Take a backup of the following files in the Oracle rn 10.2.0.3.0 installation :-rnrn $ORACLE_HOME/lib/lib<em>occi</em>10.arn $ORACLE_HOME/lib/lib<em>occi</em>.so.10.1rn $ORACLE_HOME/rdbms/public/<em>occi</em>Common.hrnrn Preferably, these files should be backed up to rn $ORACLE_HOME/lib/gcc323rnrn2) Copy the files from this archive to appropriate rn directories :-rnrn lib<em>occi</em>10.a => $ORACLE_HOME/lib/rn lib<em>occi</em>.so.10.1 => $ORACLE_HOME/librn <em>occi</em>Common.h => $ORACLE_HOME/rdbms/publicrnrn3) Ensure that the gcc 3.4.3 compiler is setup andrn the default compiler to run(first in path). Torn revert back to gcc 3.2.3 compiler, restore the rn backed up OCCI files to their original rn directories.rnrnInstant Client Installationrn---------------------------rnThe OCCI dynamic library lib<em>occi</em>.so.10.1 present in thisrnpackage can replace the default lib<em>occi</em>.so.10.1 in the rnOracle 10g R2 Instant Client Basic package for deploying rnOCCI applications.rnrnInstalling Patchesrn------------------rnIf any Oracle supplied patch install procedure regeneratesrnthe client shared libraries, the newly generated lib<em>occi</em>.so.10.1rnin $ORACLE_HOME/lib will not be compatible with gcc 3.4.3. Thernlib<em>occi</em>.so.10.1 in this archive needs to be re-copied to rn$ORACLE_HOME/lib. rn覆盖以后所报的链接错误不一样,但总的来说问题是一样的,只是报错的未定义引用的函数名不一样rnrn以下是我开发所用环境rneclipse3.3.1.1rnlinxu RedHat 4.5 x86_64rnoracle 10g(10.1.0.2.0)rngcc version 3.4.6(3.4.3)在控制台中查看gcc版本是3.4.6,可是在eclipse的工程下,看见所include的却是3.4.3,我有点不明白。因为在eclipse中每建一个工程,编译器会自动include一些必须的文件rnrnrn这是我eclipse使用oracle <em>occi</em>库所做的配置rn/home/client/OraHome_1/rdbms/public 头文件rn<em>occi</em>10 库名rn/home/client/OraHome_1/lib 库路径rnrn#include "/home/client/OraHome_1/rdbms/public/<em>occi</em>.h"rnusing namespace oracle::<em>occi</em>;rnrnint main(int argc, char* argv[])rnrn Environment *env;rn Connection *conn; rn env = Environment::createEnvironment(Environment::DEFAULT);rn conn = env->createConnection("usrname", "pwd", "db");rn ..............rn ..............rn return 0;rnrnrnrn在eclipse下编译后,链接时报出如下错误:rn'/usr/bin/ld: skipping incompatible /usr/lib/libm.so when searching for -lmrn/usr/bin/ld: skipping incompatible /usr/lib/libm.a when searching for -lmrn/usr/bin/ld: skipping incompatible /usr/lib/libc.so when searching for -lc rn/usr/bin/ld: skipping incompatible /usr/lib/libc.a when searching for -lcrn这些错误看起来可能是平台的问题,我的系统是64位,难道这些库是32位的吗?但是这个问题不影响我程序的运行,并不是问题的关键所在,随便写个其它的程序都报这个错,但是程序运行无误。应该算是一个警告吧rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Number.o)(.text+0x3285): In function `oracle::<em>occi</em>::Number::sin() const':: undefined reference to`lnxqtra'rnrn /home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Number.o)(.text+0x3314): In function `oracle::<em>occi</em>::Number::cos() const':: undefined reference to `lnxqtra'rn这些错误的意思是不是说:在lib<em>occi</em>10的库中调用了其它的库,比如<em>occi</em>Number,而这个库中又使用了一些未定义的引用???下面还有很多其它被间接调用的库rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Number.o)(.text+0x33ab): In function `oracle::<em>occi</em>::Number::tan() const':: undefined reference to `lnxqtrarnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Env.o)(.text+0x5b4): In function `oracle::<em>occi</em>::Environment::terminateEnvironment(oracle::<em>occi</em>::Environment*)':: undefined reference to `OCIHandleFree'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Env.o)(.text+0x60c): In function `oracle::<em>occi</em>::Environment::getXAEnvironment(std::basic_string, std::allocator > const&)':: undefined reference to `xaoEnv'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Env.o)(.text+0x621): In function `oracle::<em>occi</em>::Environment::getXAEnvironment(std::basic_string, std::allocator > const&)':: undefined reference to `xaoEnv'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Env.o)(.text+0x646): In function `oracle::<em>occi</em>::Environment::getXAEnvironment(std::basic_string, std::allocator > const&)':: undefined reference to `OCIHandleAlloc'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>Env.o)(.text+0x670): In function `oracle::<em>occi</em>::Environment::getXAEnvironment(std::basic_string, std::allocator > const&)':: undefined reference to `OCIAttrGet'rnrn.............................中间还有很多错误rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>EnvImpl.o)(.text+0x12ea): In function `oracle::<em>occi</em>::EnvironmentImpl::getXAConnection(std::basic_string, std::allocator > const&)':: undefined reference to `OCIPHeapAlloc'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>EnvImpl.o)(.text+0x157f): In function `oracle::<em>occi</em>::EnvironmentImpl::getCacheSortedFlush() const':: undefined reference to `OCIAttrGet'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>AnyDataImpl.o)(.text+0x427c): In function `oracle::<em>occi</em>::AnyDataImpl::getAsRef() const':: undefined reference to `OCIObjectNew'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>AnyDataImpl.o)(.text+0x42a4): In function `oracle::<em>occi</em>::AnyDataImpl::getAsRef() const':: undefined reference to `OCIAnyDataGetType'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>AnyDataImpl.o)(.text+0x42db): In function `oracle::<em>occi</em>::AnyDataImpl::getAsRef() const':: undefined reference to `OCIAnyDataAccess'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>AnyDataImpl.o)(.text+0x4340): In function `oracle::<em>occi</em>::AnyDataImpl::getAsRef() const':: undefined reference to `OCIObjectFree'rnrn/home/client/OraHome_1/lib/lib<em>occi</em>10.a(<em>occi</em>AnyDataImpl.o)(.text+0x4404): In function `oracle::<em>occi</em>::AnyDataImpl::getType() const':: undefined reference to `OCIAnyDataGetType'rnrncollect2: ld returned 1 exit statusrn`make: *** [AGM] Error 1 rnrn这个问题我思索了两三天了,急的我团团转,但还是没有头绪,望各位开发高手不吝赐教,先谢谢了!rnrnrn
AIX occi连接报错请教
环境:AIX 6.1rnC++用OCCI链接oracle,写了一个最简单的程序,但总是链接问题:rnrnCompile a.o ......rnLink a.o to a......rnld: 0711-224 WARNING: Duplicate symbol: .__divti3rnld: 0711-224 WARNING: Duplicate symbol: .__modti3rnld: 0711-224 WARNING: Duplicate symbol: .__udivti3rnld: 0711-224 WARNING: Duplicate symbol: .__umodti3rnld: 0711-224 WARNING: Duplicate symbol: .__udivmodti4rnld: 0711-345 Use the -bloadmap or -bnoquiet option to obtain more information.rnld: 0711-317 ERROR: Undefined symbol: .oracle::<em>occi</em>::Environment::createEnvironment(oracle::<em>occi</em>::Environment::Mode, void*, void* (*)(void*, unsigned long), void* (*)(void*, void*, unsigned long), void (*)(void*, void*))rncollect2: ld returned 8 exit statusrnmake: 1254-004 The error code from the last command is 1.rnrnrnStop.rnrn但是makefile里已经将相关目录都添加进去了,<em>occi</em>.h,lib<em>occi</em>.a lib<em>occi</em>.so都有的,不知为何报Undefined symbol: .oracle::<em>occi</em>::Environment::createEnvironment,请各位大侠指教,谢谢!rnrn代码如下:rn//a.cpprn#include rn#include rnusing namespace std; rnusing namespace oracle::<em>occi</em>; rnmain()rnrnEnvironment *env=Environment::createEnvironment();rncout<<
occi 连接远程数据库怎么写
远程数据库: rnrn主机ip:192.168.1.98rn数据库用户名:scottrn数据库密码:tigerrn数据库SID:denver1rn数据库端口:1521rnrnEnvironment *env = Environment::createEnvironment();rnrnConnection *conn = env->createConnection("scott", "tiger" ,不会写了);
用c连接mysql时,是否要自己实现连接功能?
mysql自带的api<em>是否</em>有<em><em>连接</em>池</em>功能?还是要自己实现?
solaris上使用G++ OTLV4连接OCCI时候出现问题
g++ -I/export/home/youray/Downloads/oracle/include -g -L/usr/local/lib -L/export/home/youray/Downloads/oracle/lib -lstdc++ -lm -lc -lnsl -lsocket -lpthread -lociei -lclntsh -lnnz10 -l<em>occi</em> -o MPM DataSource.o DBAccess.o SessionData.o SYS_COM_IPT.o TimerUtil.o WelcomeSM.o WelcomeSMDao.ornUndefined first referencedrn symbol in filern__1cG__CrunKpure_error6F_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdbC__RTTI__1nDstdMlength_error__ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMout_of_range2T6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mpkc_r1_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdLlogic_error2t6Mrkn0AMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc_____v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunIex_alloc6FI_pv_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunIex_throw6Fpvpkn0AQstatic_type_info_pF1_v_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2G6Mrk1_r1_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2t6MpkcIrkn0C__v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdV__null_string_ref_rep4CcnDstdLchar_traits4Cc__n0BJallocator4Cc__n0AQ__string_ref_rep4n0D____2t6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdRexcept_msg_string2t6MIE_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2t6Mpkcrkn0C__v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2T6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdbC__rwse_StringIndexOutOfRange_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdZ__RTTI__1nDstdJbad_alloc__ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Gassign6Mrk1II_r1_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunRex_chk_unexpected6F_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdX__rwse_InvalidSizeParam_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdJbad_alloc2t6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdbB__rwse_PosBeyondEndOfString_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdUInterlockedDecrement6Fpl_l_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdUInterlockedIncrement6Fpl_l_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdbC__RTTI__1nDstdMout_of_range__ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdLlogic_error2T6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___I__getRep6MII_pnH__rwstdM__string_ref4Ccn0B_n0C____ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdTInterlockedExchange6Fpll_l_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdJallocator4Cc_2t6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMlength_error2t6Mrkn0AMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc_____v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdY__rwse_UnexpectedNullPtr_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___2t6Mrk1IIrkn0C__v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMlength_error2T6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMout_of_range2t6Mrkn0AMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc_____v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunGex_get6F_pv_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1c2n6FIpv_0_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdJexceptionG__vtbl_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdJbad_allocG__vtbl_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunMex_rethrow_q6F_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Hcompare6kMIIpkcI_i_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdX__rwse_ResultLenInvalid_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunSregister_exit_code6FpG_v_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunHex_skip6F_b_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___Hreplace6MIIpkcIII_pc_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdMbasic_string4Ccn0ALchar_traits4Cc__n0AJallocator4Cc___I__unLink6M_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunIex_clean6F_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cG__CrunKex_rethrow6F_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cDstdbB__RTTI__1nDstdLlogic_error__ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1cH__rwstdRexcept_msg_stringGmsgstr6kM_pkc_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1c2k6Fpv0_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sornc::c(N6, (int0_t)) /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sornc::c(n6, (int0_t)) /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1c2K6Fpv_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sorn__1c2k6Fpv_v_ /export/home/youray/Downloads/oracle/lib/lib<em>occi</em>.sornld: fatal: symbol referencing errors. No output written to MPMrncollect2: ld returned 1 exit status
通过OCCI连接oracle(C++)
Oracle C++调用接口(OCCI),即Oracle的C++API,允许你使用面向对象的特性、本地类、C++语言的方法来访问Oracle数据库
Linux C 互斥锁的使用
<em>互斥锁</em>的作用 保护共享数据: 在并发机制的情况下,有<em>时候</em>会有多个线程同时访问同一片数据,为了保护数据操作的准确性就需要通过加锁来进行保护。 保持操作互斥: 可能一个程序会有多个操作,但是同一个时间只能有一个操作被执行,例如a/b两个操作,如果a被执行,b就不能被执行,同理b被执行,a就不能执行 操作函数 pthread_mutex_t lock; /* <em>互斥锁</em>定义 */ pthread_mute...
vs2008 用occi 连接oracle
首先在tools,option选项中的include 和library 中指定了路径 rn下面就是全部代码rn#include "stdafx.h"rn#includern#includern#pragma comment (lib,"ora<em>occi</em>11.lib")rn#include "<em>occi</em>.h"rnrnusing namespace std;rnusing namespace oracle::<em>occi</em>;rnrnint main()rnrnconst string userName = "duanfeng";rnconst string password = "1144";rnconst string connectString ="Eden";rnrnEnvironment *env = Environment::createEnvironment(Environment::THREADED_MUTEXED);rn rn Connection *conn = env->createConnection(userName,password,connectString); rnrnEnvironment::terminateEnvironment(env);rnrnreturn 0;rnrnrnrn但是一直报错 Unhandled exception at 0x75219617 in Oracle_<em>occi</em>.exe: Microsoft C++ exception: oracle::<em>occi</em>::SQLException at memory location 0x001cf3e4..rnrnrn高手指点下啊
求助 OCCI连接问题 TNS-12163
int main(int argc, char* argv[])rnrn Environment *pEnv = NULL; //定义执行环境对象rn Connection *pConn = NULL; //定义链接对象rn Statement *pStmt = NULL; //定义执行语句对象rn ResultSet *pRs = NULL; //定义结果集对象rn const string szUserName = "system"; //设置用户名rn const string szUserPwd = "123"; //设置密码rn const string szConnection = "NNN"; //设置要链接的数据库,"icss"是数据库名rn tryrn rn pEnv = Environment::createEnvironment(); //创建了一个执行环境rn pConn = pEnv->createConnection(szUserName, szUserPwd, szConnection); //创建了一个链接,有三个参数。rnrn if ( NULL == pConn) //如果链接创建失败,执行以下代码rn rn cout << "Connection Failure" << endl;rn return 0;rn rn pStmt = pConn->createStatement(); //通过connection对象创建一个statement对象rn string strSql = "select * from test";rn pStmt -> setSQL(strSql); //设置语句执行对象的属性rn pRs = pStmt->executeQuery(); //执行调用,返回结果集对象rn while ( pRs -> next()) //对结果集遍历,输出结果集里的数据rn rn cout << pRs->getInt(1) << " " << pRs->getString(2) << endl;rn //getInt()和getString()方法的使用取决于数据集里数据的类型。1和2指第一、第二个字段rn rn catch ( SQLException ex)rn rn cout << ex.getMessage() << endl;rn rn pStmt -> closeResultSet(pRs); //statement对象调用方法关闭数据集rn pConn -> terminateStatement(pStmt); //connection对象调用terminateStatement()方法关闭statement对象rn pEnv -> terminateConnection(pConn); //environment对象调用方法关闭connection对象rn Environment::terminateEnvironment(pEnv); //关闭环境对象。rn return 0;rnrnrn便已完成后运行,提示: rnrnOracle错误-- rnrnORA-12163: TNS: <em>连接</em>描述符太长 rnrn请高手帮助分析一下,问题出在哪!
VC occi连接oracle 源代码
VC使用<em>occi</em> <em>连接</em> orcale 数据库。包括代码中包括一个写好的使用事例。
VS2005连接ORACLE10G的OCCI程序问题
[code=c]#include rn#include rnusing namespace std;rnusing namespace oracle::<em>occi</em>;rnrnrnint main()rnrn Environment *env;rn Connection *conn;rn Statement *stmt;rn tryrn rn env = Environment::createEnvironment(Environment::DEFAULT);rn conn = env->createConnection("guixh", "guixh","localhost:1521"); //这句抛出异常,异常为24960rn stmt = conn->createStatement();rnrn stmt->setAutoCommit(true);rnrn ResultSet *rs = stmt->executeQuery("Select * FROM t1");rn while (rs->next())rn rn int num = rs->getInt(1); rn string name = rs->getString(2); rn cout << num << name terminateStatement(stmt);rnrn return 0;rn[/code]rnrn代码如上,配置如下:rn工具-》选项-》项目和解决方案-》vc++目录,在右边出现的组合框中选择“包含文件”,把你的oci目录包含进来。例如我的是:D:/oracle/product/10.2.0/db_1/OCI/include。完了之后,配置库目录,仍然是在组合框选择库文件,然后输入你的库文件目录,例如我的是:D:/oracle/product/10.2.0/db_1/OCI/lib/MSVC。rn选择项目属性-》配置属性-》<em>连接</em>器-》输入,在附加依赖项中添入ora<em>occi</em>10.lib。配置完毕。rnrn抛出错误的地方:rnconn = env->createConnection("guixh", "guixh","localhost:1521"); //这句抛出异常,异常为24960rn
关于druid连接,无法获取连接的问题
首先感谢: http://www.cnblogs.com/spec-dog/p/6226212.html 从这篇博客中印证了我的猜测,确实是因为<em>连接</em>未关闭而引起的问题。 -------------------------------------------------------------- 因为持久层使用的是SpringData Jpa ,同时一般情况下不需要多次去查询数据
Tomcat配置JNDI连接 getConnection()获取不到连接
首先 tomcat版本为8.5 ojdbc版本为 ojdbc14 jdk1.8 在tomcat配置文件context中配置 数据源 &lt;Resource name="jdbc/xxx" auth="Container" type="javax.sql.DataSource" maxTotal="50" maxIdle="50" ...
jdbc通过JNDI获取tomcat6连接连接
[color=darkblue][size=large]1.tomcat的server.xml中配置<em><em>连接</em>池</em>[/size][/color] [code=&quot;java&quot;] [/code] [color=darkblue][size=large]2.将jdbc.driver的jar包拷到tomcat/lib文件夹下[/size][/color] [color...
Hibernate与连接获取连接各有什么不同?
我想问的不是<em><em>连接</em>池</em>的优点在哪里,就是从<em><em>连接</em>池</em><em>获取</em>的<em>连接</em>与从Hibernate直接<em>获取</em>的<em>连接</em>2者有什么不同?
关于redis,创建连接获取连接
最近在使用redis,对于redis的使用,也学习了一些,现在记录下来,以供以后学习使用。 首先redis的使用,本文是使用java开发的,首先我们需要创建redispool(<em><em>连接</em>池</em>),在配置信息中,填入Redis的配置信息, 可以先定义一个全局变量,也可以在需要的<em>时候</em>在自己创建都可以。 这些都写到一个类里面 public static JedisPool jedisPool=null...
durid连接获取连接的时间太长
你好。我用servlet通过配置文件<em>获取</em>durid<em><em>连接</em>池</em>中<em>连接</em>,在这里,我的数据库密码错误的情况下,每次都是第一次从<em><em>连接</em>池</em>中取connection时很快,但第二次取connection时很慢,原因何在?rn(1)<em><em>连接</em>池</em>的部分配置:rninitialSize = 10rnmaxActive = 100rnminIdle = 3rnmaxWait = 10000rnremoveAbandoned = truernremoveAbandonedTimeout = 180rntimeBetweenEvictionRunsMillis = 20000rnminEvictableIdleTimeMillis = 50000rnvalidationQuery = SELECT 1 FROM DUALrntestWhileIdle = true rntestOnBorrow = falserntestOnReturn = falsernpoolPreparedStatements = falsernmaxPoolPreparedStatementPerConnectionSize = 50rnfilters =statrn(2)数据源的创建rn /**rn * 初始化<em>连接</em> dataSourcern * rn * @param ConfigNamern */rn public static void initdataSource(Properties ps) rn try rn dataSource = DruidDataSourceFactory.createDataSource(ps);rn rn catch (Exception e) rn e.printStackTrace();rn rnrn rn(3)<em>连接</em>的<em>获取</em>rn public static Connection getConnection() throws Exception rn try rn return dataSource.getConnection();rn catch (GetConnectionTimeoutException e) rn throw new Exception("数据库<em>连接</em>有问题,<em>连接</em>超时!", e);rn catch (SQLException e) rn throw new Exception("数据库<em>连接</em>有问题,账号或密码错误!", e);rn catch (Exception e) rn e.printStackTrace();rn rn return null;rn rn我的瓶颈就是在dataSource.getConnection()当数据库<em>连接</em>发生错误时第二次<em>获取</em>时间太长
如何从tomcat连接获取连接?
如何从tomcat<em><em>连接</em>池</em><em>获取</em><em>连接</em>?
控制AD0809的时候为什么要加反相器?
控制AD0809的<em>时候</em>为什么要加反相器?rn rn或者要加与非门控制? rnrn为什么不能直接设置为相应的逻辑值
为什么在设置ID的时候要加""号?
为什么在设置ID的<em>时候</em>要加""号,如果不加的话,不行运行,但是如果你加了的话,一切运行正常的<em>时候</em>,再把""号去掉,还是可以通用的.谁知道这是为什么?
打包的时候,加不进要打包的文件?
项目做完后,建打包项目,结果加不进文件,是怎么回事
请问高高手,OCCI中OTT是如何解决互斥锁问题的?
采用预读缓存对象,此时如果真实数据库中数据已改变呢?oracle如何解决互斥的问题?还是需要自己写?
webservice 加连接的问题
我用JSP直接调用<em><em>连接</em>池</em>的<em>时候</em>没有问题rn但是现在需要在WEBSERVICE中调用<em><em>连接</em>池</em>,一直都没有成功rn调用过程是这样的,里面有一个SERVLET :INTTDATECONNECTION ,这个是在启动的<em>时候</em>初始化<em><em>连接</em>池</em>的rn一个CLASS :ConnectionPool 这个是是用来得到<em><em>连接</em>池</em>的<em>连接</em>,OperAction 中调用ConnectionPool没有成功rn但是直接用JSP或者是Bean调用都是好的rn请问这是怎么回事情
关于外键字段是否要加索引的问题
创建两个表rn1.DefInspectItem表 其中字段 ID 为主键rn2.DataInspect表 其中字段 ItemId 为引用DefInspectItem.Id的外键,我为该字段加上了可以重复的所引rnrn然后我用Visio的反向工程,创建了数据库模型,在使用模型分析功能时给出如下的告警提示rnrnD:\绘图1 : 警告 L4001:“DefInspectItemDataInspect”:表“DataInspect”上rn的索引和索引“ItemId”(在同一表上)相同。rnrn再示用DDL生成功能关于该字段有如下两条SQL语句rnrncreate index `ItemId` on `DataInspect` (rn `ItemId` ASC); rnrnalter table `DataInspect`rn add constraint `DefInspectItemDataInspect` foreign key (rn `ItemId`)rn references `DefInspectItem` (rn `ID`); rnrn-------------------------------------------------------------rn请问高手,我为ItemId创建的索引<em>是否</em>是个多余的对象?foreign key 在查询时<em>是否</em>可以和索引对象一样提高查询速度?
两条MainConn.Excute之间是否要加Doevents?
发现一个现象,如果两条MainConn对一个表操作,而且中间又没有其他语句相隔,则有时表不能及时更新rn我试了试,在他们之间加Doevents就没事了rn不知道是不是bugrnrn(我程序中有5对MainConn.Excute相连的情况,但只有1对有上述现象.还没弄明白为什么会这样,谁能帮解释一下?)rnrn我用的是SP6+ADO+ACCESS2000rn
java数据库操作方法是否要加线程锁
[code=java]/**rn * 执行无返回值的SQL语句rn */rn public int executeUpdate(String sql, Object[] obj) throws SQLException rn int ri = 0;rn try rn pstm = con.prepareStatement(sql);rn for (int i=0; i
Java网络编程-多线程连接
Java网络编程-多个例子,<em>多线程</em>,<em><em>连接</em>池</em>,文件传输
水晶报表的子报表是否要加CrystalReportViewer???[
主报表和子报表的数据源都是手工构造的dataset, rn都在Form1.vb中写,分别是DataSet1、ds_OpDesc,这两个手工构造方法一样, rn现只例出子报表的: rnPublic Shared dt_OpDesc As DataTable rn If dt_OpDesc Is Nothing Then rn dt_OpDesc = New DataTable() rn dt_OpDesc.Columns.Add("OpDesc", GetType(String)) '工单号 rn dt_OpDesc.Columns.Add("JobNum", GetType(String)) '工序号 rn End If rnrn Dim dr_OpDesc As DataRow = dt_OpDesc.NewRow() rn dr_OpDesc(0) = lyh_odbc2.Get_DataTable(sql_OpDesc).Rows(0).Item(0) rn dr_OpDesc(1) = lyh_odbc2.Get_DataTable(sql_OpDesc).Rows(0).Item(1) rn dt_OpDesc.Rows.Add(dr_OpDesc) rn dt_OpDesc.AcceptChanges() rnrn Dim ds_OpDesc As DataSet = New DataSet() rn ds_OpDesc.Tables.Add(dt_OpDesc) rnrn Dim oRpt2 As New OpDesc() '子报表 rn oRpt2.SetDataSource(dt_OpDesc) rn添加一数据集,名称为ds_OpDesc.xsd,和手工建的一样 rn(1)添加DataSet:右键/添加/新建项/数据集 ds_OpDesc.xsd rn(2)添加DataTable:在ds_OpDesc.xsd页面,右键/添加/DataTable ,名称为dt_OpDesc rn 再添加列,列名称和手工建的一样 rnForm1页面只加了一个CrystalReportViewer,其数据源是主报表 rn Dim DataSet1 As DataSet = New DataSet() rn DataSet1.Tables.Add(dt_ProductionDetail) rn Dim oRpt As New CrystalReport1() '主报表 rn oRpt.SetDataSource(dt_ProductionDetail) '这里的DataSet1与手工构造的相同 rn CrystalReportViewer1.ReportSource = oRpt '设置报表源 rn CrystalReportViewer1.Visible = True rn CrystalReportViewer1.BringToFront() rnrn为什么运行程序只有主报表有数据,子报表没有???
(4)多线程服务器与连接
在我第一篇博客给出的例子中,EchoServer接收到一个客户端<em>连接</em>,就与客户进行通信,通信完毕后断开<em>连接</em>,然后再接收下一个客户端的<em>连接</em>。而如果有多个客户端请求<em>连接</em>,那么这些客户端就需要排队等候。 在实际应用中,一个服务器往往同时为多个客户端提供服务,还是以HTTP服务器为例,HTTP服务器可能同时收到大量客户的请求,每个客户都希望尽快得到响应,如果让客户等待时间过长,就是造成网站客户量流失,访
jedis连接多线程场景
jedis是redis为java提供的原生API,也是是我们日常开发中常用的,个人日常用的简单总结下 maven pom.xml坐标,引入jar包 &amp;lt;dependency&amp;gt; &amp;lt;groupId&amp;gt;redis.clients&amp;lt;/groupId&amp;gt; &amp;lt;artifactId&amp;gt;jedis&amp;lt;/artifactId&amp;...
Httpclient多线程连接封装
1、封装 package com.suning.search.utils; import java.io.IOException; import java.io.UnsupportedEncodingException; import java.util.ArrayList; import java.util.HashMap; import java.util.
多线程访问变量是否要加锁
<em>是否</em>要加锁? 加锁的代价有多大? 现在有个变量 static int g_delRecordFlag = 0;多个线程同时访问,加了<em>互斥锁</em>,感觉资源消耗的有点多。 这个变量即使多个线程访问冲突,也没有什么大的问题,很纠结<em>是否</em>加锁。 询问同事,arm访问int是原子型的,可以不加锁。 网上查询了下, 1.int变量读写<em>是否</em>是原子操作,是平台相关的,可以看内核相应平台的atomic.h中对
list control 多线程是否要加锁
如题,在多个线程中insert数据到list control是不是需要枷锁?
多线程读硬盘文件是否要同步?
在<em>多线程</em>的情况下读硬盘分区文件,可能同时读一个文件,也可能读不同文件或不同分区的文件,这种情况下需要线程同步吗?(只有读没有写文件动作)
上传的时候是否要用到FSO对象?
应该怎么用啊?
为什么要引入连接
一、问题当应用在执行持久化数据到数据库的<em>时候</em>,会使用jdbc<em>连接</em>数据库,并插入数据我们都知道jdbc在<em>连接</em>数据库分成如下步骤建立数据库<em>连接</em>增删改查数据关闭数据库<em>连接</em>如果有上万个请求同时进行持久化的操作,那就意味着开关数据库的次数达到上万次,这样会带来一些问题1、如果持久化的<em>时候</em>出现异常,导致数据库没有正确的关闭<em>连接</em>,会造成大量的<em>连接</em>积压在数据库的会话列表中,出现数据库无法访问的情况。(专有名词:数...
OCCI在vc 6.0 下使用多线程进行开发
#include "windows.h"rn#include "<em>occi</em>.h"可以正常进行编译,但是rn#include "<em>occi</em>.h"rn#include "windows.h",顺序改变了以后,则编译的<em>时候</em>会出错,在这个问题上困扰了一个星期
互斥锁
为什么这个代码执行的使只输入了一部分,后面的执行就很卡rn为啥啊rn代码如下:rn[code=C/C++]#includern#includern#includernrnint i=0; rnrnpthread_mutex_t mutex=PTHREAD_MUTEX_INITIALIZER;rnrnvoid thread1()rnrn printf("come in thread1\n");rn int ret;rn while(1)rn rn ret=pthread_mutex_trylock(&mutex);rnrn if(ret!=EBUSY)rn rn pthread_mutex_lock(&mutex);rnrn printf("this is thread1:%d\n",i);rn i++;rn pthread_mutex_unlock(&mutex);rn rn rn sleep(1);rn rnrnrnvoid thread2()rnrn printf("come in thread2\n");rn int ret;rn while(1)rn rn ret=pthread_mutex_trylock(&mutex);rn if(ret!=EBUSY)rn rn pthread_mutex_lock(&mutex);rn printf("this is thread2:%d\n",i);rn i++;rn pthread_mutex_unlock(&mutex);rn rn sleep(1);rn rnrnrnint main()rnrn pthread_t t1,t2;rn printf("main start\n");rn pthread_mutex_init(&mutex,NULL);rn printf("this is in main and after mutex init\n");rn pthread_create(&t1,NULL,(void *)thread1,NULL);rnrn printf("this is in main and at middle of create thread1 and thread2\n");rn pthread_create(&t2,NULL,(void *)thread2,NULL);rn printf("this is in main and after create thred1 and thread2\n");rnrn pthread_join(t1,NULL);rn printf("this is in main and after thread1 join\n");rn pthread_join(t2,NULL);rn printf("this is after thread2 join\n");rnrn pthread_mutex_destroy(&mutex);rn return 0;rnrn[/code]rnrn执行后输出:rnmain startrnthis is in main and after mutex initrnthis is in main and at middle of create thread1 and thread2rnthis is in main and after create thred1 and thread2rncome in thread2rncome in thread1rnrn然后就一直卡死在里面
请问这个饼图要加一个连接,该如何加?
下面社个饼图显示,出来饼图后我要根据fm_lx可以点击进如下一个页面1.asp,传入参数fm_lxrnrnrnrnrnrn rn rn rn 管网设施数量饼图rnrnrn rnrnrn rn rn rn rn rn rn rn rn rn rn rn rnrnrn
连接是否关闭
<em>连接</em>语句rn[code=C#]public static SqlConnection Connectionrn rn getrn rn string connectionString = ConfigurationManager.AppSettings["ConnString"];rn if (connection == null)rn connection = new SqlConnection(connectionString);rn connection.Open();rn else if (connection.State == System.Data.ConnectionState.Closed)rn rn connection.Open();rn else if (connection.State == System.Data.ConnectionState.Broken)rn connection.Close();rn connection.Open();rn rn return connection;rn rn [/code]rn1.如果我在<em>连接</em>数据库的<em>时候</em>不手动close关闭<em>连接</em>,等与数据操作完毕之后会自动释放<em>连接</em>,并放到<em><em>连接</em>池</em>中吗???rn[code=C#]SqlCommand cmd = new SqlCommand(sql, Connection) rn cmd.Parameters.AddRange(values);rn SqlDataReader reader = cmd.ExecuteReader();rn return reader;[/code]rnrn2.如果我加using来释放,会确保它用完之后一定会被释放吗??rn[code=C#] using (SqlCommand cmd = new SqlCommand(sql, Connection))rn rn cmd.Parameters.AddRange(values);rn SqlDataReader reader = cmd.ExecuteReader();rn return reader;rn [/code]
Spring in action 2nd下载
Spring in action Spring in action Spring in action Spring in action Spring in action Spring in action 相关下载链接:[url=//download.csdn.net/download/mumuxianyu/2292887?utm_source=bbsseo]//download.csdn.net/download/mumuxianyu/2292887?utm_source=bbsseo[/url]
桌面精灵 带给你不一样的感受下载
桌面精灵 非常方便 快捷 用一下你就知道了 相关下载链接:[url=//download.csdn.net/download/tianya1232/2915959?utm_source=bbsseo]//download.csdn.net/download/tianya1232/2915959?utm_source=bbsseo[/url]
连接数据库下载
连接数据库 相关下载链接:[url=//download.csdn.net/download/ygwh114/3922876?utm_source=bbsseo]//download.csdn.net/download/ygwh114/3922876?utm_source=bbsseo[/url]
我们是很有底线的