连接池的问题 ( 积分: 100 )

  • 主题发起人 主题发起人 sunreal
  • 开始时间 开始时间
S

sunreal

Unregistered / Unconfirmed
GUEST, unregistred user!
原来做的一个项目,系统运行正常,但是时间长了,就会出现内存不够,一般一个月就要重启一下机器。这是数据库的连接问题,每一次客户端都要与服务器连接。给个连接池的例子让小弟学习一下。请大侠帮忙啊。
 
原来做的一个项目,系统运行正常,但是时间长了,就会出现内存不够,一般一个月就要重启一下机器。这是数据库的连接问题,每一次客户端都要与服务器连接。给个连接池的例子让小弟学习一下。请大侠帮忙啊。
 
是内存没有完全释放,我想不是用不用联接次的问题.你再看看你的程序有没有create的,但没freer的!
 
给个例子学习一下好吗?
 
同意二楼的意见,应该是内存释放的问题
 
不是客户端的问题,而是服务器数据库sql的连接自己分配的内存问题。
 
给个例子啊。
 
在远程数据模块中定义的函数,怎么在pooler单元中声明。
问题。请告知。
在_TLB.pas中有如下函数
ISn_RDModDisp = dispinterface
['{5CC939C1-01E7-4C76-A100-53A8F3F788B4}']
function GetWbId(const plid: WideString): OleVariant;
dispid 301;
function GetMemberInf(const pl_id: WideString;
out m_id: OleVariant;
out m_st_id: OleVariant): OleVariant;
dispid 302;
function GetWithMem(const pl_id: WideString;
out m_id: OleVariant;
out m_st_id: OleVariant): OleVariant;
dispid 303;
function ExecProc(const procname: WideString;
var pms: OleVariant): OleVariant;
dispid 304;
function GetProcParams(const procname: WideString;
out pms: OleVariant): OleVariant;
dispid 305;
function GetPlCttype(const plid: WideString): OleVariant;
dispid 306;
function IsAtInit: OleVariant;
dispid 307;
function GetCount(const tablename: WideString): OleVariant;
dispid 308;
function checkExsits(const table: WideString;
const keyname: WideString;
keyvalue: OleVariant): OleVariant;
dispid 309;
function CheckPurview(const userId: WideString;
const modName: WideString;
out purInt: OleVariant;
out purStr: OleVariant): OleVariant;
dispid 310;
function GetTheState(const Id: WideString;
iType: Integer): OleVariant;
dispid 311;
function GetNowTime(out nowTime: OleVariant): OleVariant;
dispid 312;
function AS_ApplyUpdates(const ProviderName: WideString;
Delta: OleVariant;
MaxErrors: Integer;
out ErrorCount: Integer;
var OwnerData: OleVariant): OleVariant;
dispid 20000000;
function AS_GetRecords(const ProviderName: WideString;
Count: Integer;
out RecsOut: Integer;
Options: Integer;
const CommandText: WideString;
var Params: OleVariant;
var OwnerData: OleVariant): OleVariant;
dispid 20000001;
function AS_DataRequest(const ProviderName: WideString;
Data: OleVariant): OleVariant;
dispid 20000002;
function AS_GetProviderNames: OleVariant;
dispid 20000003;
function AS_GetParams(const ProviderName: WideString;
var OwnerData: OleVariant): OleVariant;
dispid 20000004;
function AS_RowRequest(const ProviderName: WideString;
Row: OleVariant;
RequestType: Integer;
var OwnerData: OleVariant): OleVariant;
dispid 20000005;
procedure AS_Execute(const ProviderName: WideString;
const CommandText: WideString;
var Params: OleVariant;
var OwnerData: OleVariant);
dispid 20000006;
那在pooler中还需要定义声明这些函数吗?
现在只有几个默认的函数
function AS_ApplyUpdates(const ProviderName: WideString;
Delta: OleVariant;
MaxErrors: Integer;
out ErrorCount: Integer;
var OwnerData: OleVariant): OleVariant;
safecall;
function AS_GetRecords(const ProviderName: WideString;
Count: Integer;
out RecsOut: Integer;
Options: Integer;
const CommandText: WideString;
var Params: OleVariant;
var OwnerData: OleVariant): OleVariant;
safecall;
function AS_DataRequest(const ProviderName: WideString;
Data: OleVariant): OleVariant;
safecall;
function AS_GetProviderNames: OleVariant;
safecall;
function AS_GetParams(const ProviderName: WideString;
var OwnerData: OleVariant): OleVariant;
safecall;
function AS_RowRequest(const ProviderName: WideString;
Row: OleVariant;
RequestType: Integer;
var OwnerData: OleVariant): OleVariant;
safecall;
procedure AS_Execute(const ProviderName: WideString;
const CommandText: WideString;
var Params: OleVariant;
var OwnerData: OleVariant);
safecall;
其余的怎么写。现在进行调试他出现如下错误:
[error]pooler.pas[39]Undeclared identifier.'GetWbld'
----
---
---
其余的类似。
 
请指点。帮忙。急啊。
 
是内存泄漏,没有释放,例子很多呀,delphi帮助里面都可以找到
 
帮忙看看。
 
在远程数据模块定义的函数,还需要在pooler模块里定义函数吗,怎样定义。
 
后退
顶部