File: sql-manager.cc

package info (click to toggle)
tcl-sql 20000621-1
  • links: PTS
  • area: main
  • in suites: woody
  • size: 612 kB
  • ctags: 81
  • sloc: cpp: 399; makefile: 60; tcl: 19; csh: 2
file content (65 lines) | stat: -rw-r--r-- 1,356 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
// ---------------------------------------------------------
//
// Author: Tony Darugar, tdarugar@binevolve.com
// 
// $Id: sql-manager.cc,v 1.5 1999/06/10 02:50:11 tdarugar Exp $
//
// ---------------------------------------------------------

#include <stdio.h>
#include "sql-manager.h"

// ---------------------------------------------------------
Manager_sql::Manager_sql() {
	nConnections=0;
	for (int i=0; i < maxConns; i++) {
		conns[i] = NULL;
	}
}

// ---------------------------------------------------------
int 
Manager_sql::findFreeConn() {
	for (int i=0; i < maxConns; i++) {
		if (conns[i] == NULL) return i;
	}
	return -1;
}

// ---------------------------------------------------------
char *
Manager_sql::getErrorMsg() {
	return errmsg;
}

// ---------------------------------------------------------
int 
Manager_sql::connect(int argc, char **argv) {

	if (nConnections >= maxConns) return -1;

	Sql_mysql *newconn = new Sql_mysql(argc, argv);
	if (!newconn->isConnected()) {
		errmsg = newconn->getErrorMsg();
		delete newconn;
		return -1;
	}

	int connNum = findFreeConn();
	conns[connNum] = newconn;
	nConnections++;
	return (connNum);
}



// ---------------------------------------------------------
int 
Manager_sql::disconnect(int c) {
	if (!conns[c]) return 0;

	delete conns[c];
	conns[c] = NULL;
	nConnections--;
	return 1;
}