

/*

*ACCESS数据库操作类

*2008-3-26

*LIQUAN

*dsn = "DRIVER={Microsoft Access Driver (*.mdb)}; DBQ=".PATH_ROOT."databasedata.mdb";

*conn=new Access();

*conn->Connnect(dsn);

*conn->GetArray("select * from test");

*/


class Access

{

 var conn;

 var fieldsName;
 
 
 function Access()

 {
 
 
 }


 //connection 

 function Connect(dsn)

 {

 this->conn = new COM("ADODB.Connection") or die("Cannot start ADO");

 this->conn->Open(dsn);

 }


 //返回一个

 function GetOne(sql)

 { 

 rs = this->conn->Execute(sql);

 while (!rs->EOF)

 {

 value=rs->Fields(0)->value; 

 rs->MoveNext();

 }

 rs->Close();

 rs=null;


 if(!empty(value))

 {

 return value;

 }

 else

 {

 return "";

 }

 unset(value);

 }



 //返回大数组

 function GetArray(sql)

 {
 
 
 rs = this->conn->Execute(sql);

 num_columns = rs->Fields->Count();

 rowcount = 0;

 while (!rs->EOF)

 {

 for (i=0; i < num_columns; i++)

 {

 fieldName[rowcount][rs->Fields(i)->name]= rs->Fields(i)->value;

 }

 rowcount++; 

 rs->MoveNext();

 }

 rs->Close();


 rs=null;

 if(!empty(fieldName))

 {

 return fieldName;

 }

 else

 {

 return "";

 }
 
 
 unset(fieldName);

 }


 //返回小数组

 function GetRow(sql)

 {

 rs = this->conn->Execute(sql);

 num_columns = rs->Fields->Count();
 
 
 while (!rs->EOF)

 {

 for (i=0; i < num_columns; i++)

 {

 fieldName[rs->Fields(i)->name]=rs->Fields(i)->value;

 } 


 rs->MoveNext();

 }

 rs->Close();


 rs=null;

 if(!empty(fieldName))

 {

 return fieldName;

 }

 else

 {

 return "";

 }

 unset(fieldName);


 }


 //execute SQL

 function Execute(sql)

 {

 if(this->conn->Execute(sql))

 {

 return true;

 }

 else

 {

 return false;

 }

 }


 function Close()

 {

 this->conn->Close();

 }


 function __destruct()

 {

 // this->conn->Close();

 }




}


?>