#include "stdafx.h" #include "UIIADORXServer.h" #include "UIIImpADORXServer.h" #include "UIIPackageDbOper.h" #include "zlib.h" #ifdef _DEBUG #undef THIS_FILE static char THIS_FILE[]=__FILE__; #define new DEBUG_NEW #endif #ifdef _WIN64 #import "msado60_Backcompat_x64.tlb" no_namespace rename("EOF", "EndOfFile") rename("EOS", "EndOfStream") #else #import "C:\Program Files\Common Files\System\ADO\msado15.dll" no_namespace rename("EOF", "EndOfFile") rename("EOS", "EndOfString") #endif CUIIADORXServer::CUIIADORXServer() { m_pImp = new CUIIImpADORXServer; } CUIIADORXServer::~CUIIADORXServer() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; delete pImpSrv; m_pImp = NULL; } } BOOL CUIIADORXServer::InitADOServer(LPCTSTR pszDbFileName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->InitADOServer(pszDbFileName); } return FALSE; } BOOL CUIIADORXServer::InitADOServer(LPCTSTR pszConnection,bool bDisplayException, int OptionEnum) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->InitADOServer(pszConnection,bDisplayException, (ConnectOptionEnum)OptionEnum); } return FALSE; } BOOL CUIIADORXServer::InitADOServer(LPCTSTR pszDSN,LPCTSTR pszUserID,LPCTSTR pszPassword, int eMode, int eCursor) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->InitADOServer(pszDSN,pszUserID,pszPassword, (ConnectModeEnum)eMode, (CursorTypeEnum)eCursor); } return FALSE; } BOOL CUIIADORXServer::GetConnection(CString& sConntion) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetConnection(sConntion); } return FALSE; } void CUIIADORXServer::SetDatabase(LPCTSTR pszDatabase) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->SetDatabase(pszDatabase); } } LPCTSTR CUIIADORXServer::GetDatabase() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetDatabase(); } return NULL; } void CUIIADORXServer::AppendAssocDatabase(LPCTSTR pszKey,LPCTSTR pszAssocDb) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->AppendAssocDatabase(pszKey,pszAssocDb); } } BOOL CUIIADORXServer::AssocDatabase(LPCTSTR pszKey,CString& sAssocDb) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->AssocDatabase(pszKey,sAssocDb); } return FALSE; } void CUIIADORXServer::SetLoginID(LPCTSTR pszLoginName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->SetLoginID(pszLoginName); } } LPCTSTR CUIIADORXServer::GetLoginID() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetLoginID(); } return NULL; } void CUIIADORXServer::SetGroupID(LPCTSTR pszGroup) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->SetGroupID(pszGroup); } } LPCTSTR CUIIADORXServer::GetGroupID() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetGroupID(); } return NULL; } BOOL CUIIADORXServer::CreateOLEDBTable(LPCTSTR pszTableName,Ttable& arFields,LPCTSTR pszsDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->CreateOLEDBTable(pszTableName,arFields,pszsDbName); } return FALSE; } BOOL CUIIADORXServer::CreateSQLSrvTable(LPCTSTR pszTableName,Ttable& arFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->CreateSQLSrvTable(pszTableName,arFields,pszDbName); } return FALSE; } BOOL CUIIADORXServer::IsSQLSrvTableExist(LPCTSTR pszTableName,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->IsSQLSrvTableExist(pszTableName,pszDbName); } return FALSE; } BOOL CUIIADORXServer::GetSQLSrvTableStru(LPCTSTR pszTableName,Ttable &arFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSQLSrvTableStru(pszTableName,arFields,pszDbName); } return FALSE; } BOOL CUIIADORXServer::GetSQLSrvTableStru(LPCTSTR pszTableName,CStringList &listField,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSQLSrvTableStru(pszTableName,listField,pszDbName); } return FALSE; } BOOL CUIIADORXServer::GetTableStructInfoEx(LPCTSTR pszTableName,Ttable& arFields) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetTableStructInfoEx(pszTableName,arFields); } return FALSE; } BOOL CUIIADORXServer::DeleteTable(LPCTSTR pszTableName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->DeleteTable(pszTableName); } return FALSE; } BOOL CUIIADORXServer::DeleteTable(CStringArray& arTableNames) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->DeleteTable(arTableNames); } return FALSE; } BOOL CUIIADORXServer::DeleteTableFields(LPCTSTR pszTableName,CStringArray& arFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->DeleteTableFields(pszTableName,arFields,pszDbName); } return FALSE; } BOOL CUIIADORXServer::DeleteTableFields(LPCTSTR pszTableName,LPCTSTR pszFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->DeleteTableFields(pszTableName,pszFields,pszDbName); } return FALSE; } BOOL CUIIADORXServer::AppendTableFields(LPCTSTR pszTableName,Ttable &arFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->AppendTableFields(pszTableName,arFields,pszDbName); } return FALSE; } BOOL CUIIADORXServer::AppendTableFields(LPCTSTR pszTableName, CUIITableField& arFields,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->AppendTableFields(pszTableName,arFields,pszDbName); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CString& sValue) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,sValue); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,arStrValue); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CStringArray &arStrValue, int nFr, int nTo) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,arStrValue,nFr,nTo); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL, std::vector& arStrValue) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL, arStrValue); } return FALSE; } BOOL CUIIADORXServer::IsSelEmpty(LPCTSTR pszStrSQL) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->IsSelEmpty(pszStrSQL); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue,BOOL bMakeLower) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,listStrValue,bMakeLower); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CStringList &listStrValue,int nFr,int nTo,BOOL bMakeLower) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,listStrValue,nFr,nTo,bMakeLower); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable,BOOL bUpdateLable) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,valueTable,bUpdateLable); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,CUIIValueTable &valueTable,int nFr, int nTo,BOOL bUpdateLable) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,valueTable,nFr,nTo,bUpdateLable); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszSKey_ValueSQL,CMapStringToString &mapKey_Value) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszSKey_ValueSQL,mapKey_Value); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszSKey_ValueSQL, std::map& mapKey_Value) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszSKey_ValueSQL, mapKey_Value); } return FALSE; } int CUIIADORXServer::GetSelDataEx(LPCTSTR pszSelectSQL,CMapStringToString &mapFieldToValue) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelDataEx(pszSelectSQL,mapFieldToValue); } return FALSE; } int CUIIADORXServer::GetSelDataEx(LPCTSTR pszSelectSQL, std::map& mapFieldToValue) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelDataEx(pszSelectSQL, mapFieldToValue); } return FALSE; } int CUIIADORXServer::GetSelDataEx(LPCTSTR pszSelectSQL, std::vector>& datas) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelDataEx(pszSelectSQL, datas); } return FALSE; } int CUIIADORXServer::GetSelDataEx(LPCTSTR pszSelectSQL, std::vector> &datas) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelDataEx(pszSelectSQL, datas); } return FALSE; } int CUIIADORXServer::GetSelData(LPCTSTR pszStrSQL,_variant_t &vResults,long &lAdoRow,long &lAdoCol) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->GetSelData(pszStrSQL,vResults,lAdoRow,lAdoCol); } return FALSE; } void CUIIADORXServer::GetSQLSrvTableNames(CStringList& listTables,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetSQLSrvTableNames(listTables,pszDbName); } } void CUIIADORXServer::GetSQLSrvTableNames(CStringArray& arTables,LPCTSTR pszDbName) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetSQLSrvTableNames(arTables,pszDbName); } } void CUIIADORXServer::GetTableNameArray(CStringArray& arTables,LPCTSTR pszTableType) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetTableNameArray(arTables,pszTableType); } } void CUIIADORXServer::GetOLDBTableNameList(CStringList &listTables,LPCTSTR pszTableType) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetOLDBTableNameList(listTables,pszTableType); } } void CUIIADORXServer::GetOLDBTableNameArray(CStringArray &arTables,LPCTSTR pszTableType) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; pImpSrv->GetOLDBTableNameArray(arTables,pszTableType); } } static void SplitStrintToArray(LPCTSTR pszDescr,CStringArray& arInfo,TCHAR tcSpace) { if (pszDescr == NULL) return; CString sDescr = pszDescr; int nLen = sDescr.GetLength(); int i = 0; CString sText = _T(""); TCHAR tchar = _T('\0'); for(i = 0;i < nLen;i++) { tchar = sDescr.GetAt(i); if(tchar == tcSpace) { arInfo.Add(sText); sText = _T(""); } else { sText += tchar; } if(i == nLen - 1 && !sText.IsEmpty()) { arInfo.Add(sText); } } } int CUIIADORXServer::InsertBlob(LPCTSTR pszSQL,void* pData,int nSize) { //insert into aecesign (id,name,login,password,descr,filename,guid,dwgimage) values (%d,'%s','%s','%s','%s','%s','%s',?) CString sText = pszSQL; sText.MakeLower(); int nFr = sText.Find(_T('(')); int nTo = sText.Find(_T(')')); CString sFields,sValues,sTableName; if (nFr != -1 && nTo != -1) { //(1234) sFields = sText.Mid(nFr + 1,nTo - nFr - 1); nFr = sText.Find(_T('('),nTo); nTo = sText.Find(_T(')'),nFr); if (nFr != -1 && nTo != -1) { sValues = sText.Mid(nFr + 1,nTo - nFr - 1); nFr = sText.Find(_T("into")); nTo = sText.Find(_T('(')); //into table ( sTableName = sText.Mid(nFr + 4,nTo - nFr - 4); CStringArray arFields,arValues; sFields.TrimLeft(); sFields.TrimRight(); sValues.TrimRight(); sValues.TrimLeft(); SplitStrintToArray(sFields,arFields,_T(',')); SplitStrintToArray(sValues,arValues,_T(',')); if (arFields.GetSize() == arValues.GetSize()) { CUIIValueTable packagetable; CStringArray arRec; CString sName,sVale,sPackField; for (int i = 0;i < arFields.GetSize();i++) { sName = arFields.GetAt(i); sVale = arValues.GetAt(i); sName.TrimLeft(); sName.TrimRight(); sVale.TrimLeft(); sVale.TrimRight(); if (sVale.CompareNoCase(_T("?")) == 0)// { sPackField = sName; continue; } if (sVale.Find(_T("'")) != -1) { sVale.TrimLeft(_T("'")); sVale.TrimRight(_T("'")); arRec.Add(sName); arRec.Add(sVale); arRec.Add(_T("varchar")); packagetable.AddValueRecord(arRec); arRec.RemoveAll(); } else if (sVale.Find(_T(".")) != -1)//小数 { arRec.Add(sName); arRec.Add(sVale); arRec.Add(_T("float")); packagetable.AddValueRecord(arRec); arRec.RemoveAll(); } else //按整型 { arRec.Add(sName); arRec.Add(sVale); arRec.Add(_T("int")); packagetable.AddValueRecord(arRec); arRec.RemoveAll(); } } CUIIPackageDbOper packageDb; packageDb.SetDbSrv(this); if ( !sPackField.IsEmpty()) { return packageDb.PutPackageToDb(pData,nSize,sTableName,sPackField,packagetable); } } } } return 0; } int CUIIADORXServer::InsertBlob(LPCTSTR pszSQL,LPCTSTR pszFile) { _bstr_t bst(pszFile); char* psFile = (char*)bst; FILE* pFile = NULL; #if ARX==16 pFile = fopen(psFile,"rb"); #else fopen_s(&pFile,psFile,"rb"); #endif byte* pData = NULL; long l_file_size = 0; if (pFile) { fseek(pFile,0,SEEK_END); l_file_size = ftell(pFile); fseek(pFile,0,SEEK_SET); pData = new byte[l_file_size]; fread(pData,1,l_file_size,pFile); fclose(pFile); int nResult = 0; #ifdef ZIP_DATA //压缩 uLong ldestLen = compressBound(l_file_size); byte* pDest = new byte[ldestLen + sizeof(l_file_size)]; compress(pDest,&ldestLen,pData,l_file_size); byte* pOffSize = pDest + ldestLen; memcpy(pOffSize,&l_file_size,sizeof(l_file_size)); nResult = InsertBlob(pszSQL,pDest,(int)(ldestLen + sizeof(l_file_size) ) ); delete [] pDest; #else nResult = InsertBlob(pszSQL,pData,(int)(l_file_size ) ); #endif delete [] pData; return nResult; } return 0; } int CUIIADORXServer::UpdateBlob(LPCTSTR pszSQL,void* pData,int nSize) { // sSQL.Format(_T("update aecesign set bmpimage=? where id=%d"),nId); // m_pDbSrv->UpdateBlob(sSQL,sBmpFile); CString sText = pszSQL; sText.MakeLower(); int nFr = sText.Find(_T("set")); int nTo = sText.Find(_T("=?")); if (nFr != -1 && nTo != -1) { //set bmpimage=? CString sPackageField = sText.Mid(nFr + 3,nTo - nFr - 3); sPackageField.TrimLeft(); sPackageField.TrimRight(); CUIIPackageDbOper packageDb; packageDb.SetDbSrv(this); return packageDb.UpdatePackage(sText,sPackageField,pData,nSize); } return 0; } int CUIIADORXServer::UpdateBlob(LPCTSTR pszSQL,LPCTSTR pszFile) { // sSQL.Format(_T("update aecesign set bmpimage=? where id=%d"),nId); // m_pDbSrv->UpdateBlob(sSQL,sBmpFile); CString sText = pszSQL; sText.MakeLower(); int nFr = sText.Find(_T("set")); int nTo = sText.Find(_T("=?")); if (nFr != -1 && nTo != -1) { CUIIPackageDbOper packageDb; packageDb.SetDbSrv(this); CString sFile = pszFile; _bstr_t bst(pszFile); char* psFile = (char*)bst; FILE* pFile = NULL; #if ARX==16 pFile = fopen(psFile,"rb"); #else fopen_s(&pFile,psFile,"rb"); #endif byte* pData = NULL; long l_file_size = 0; if (pFile) { fseek(pFile,0,SEEK_END); l_file_size = ftell(pFile); fseek(pFile,0,SEEK_SET); pData = new byte[l_file_size]; fread(pData,1,l_file_size,pFile); fclose(pFile); int nResult = 0; #ifdef ZIP_DATA //压缩 uLong ldestLen = compressBound(l_file_size); byte* pDest = new byte[ldestLen + sizeof(l_file_size) ]; compress(pDest,&ldestLen,pData,l_file_size); byte* pOffSize = pDest + ldestLen; memcpy(pOffSize,&l_file_size,sizeof(l_file_size)); nResult = UpdateBlob(pszSQL,pDest,(int)(ldestLen + sizeof(l_file_size) ) ); delete [] pDest; #else nResult = UpdateBlob(pszSQL,pData,(int)( l_file_size ) ); #endif delete [] pData; return nResult; } } return 0; } int CUIIADORXServer::GetSelBlob(LPCTSTR pszSQL,void*& pData,int& nSize) { // sFile = _T("temp$$.equ"); // sSQL.Format(_T("select package from aec_package where ID=%d"),_ttoi(sID)); // sSQL.Format(_T("update aecesign set bmpimage=? where id=%d"),nId); // m_pDbSrv->UpdateBlob(sSQL,sBmpFile); CString sText = pszSQL; sText.MakeLower(); int nFr = sText.Find(_T("set")); int nTo = sText.Find(_T("=?")); if (nFr != -1 && nTo != -1) { //set bmpimage=? CString sPackageField = sText.Mid(nFr + 3,nTo - nFr - 3); sPackageField.TrimLeft(); sPackageField.TrimRight(); CUIIPackageDbOper packageDb; packageDb.SetDbSrv(this); CString sFile = _T("temp$$.tmp"); if ( packageDb.OutPackageToFile(sFile,sText,sPackageField,FALSE) ) { CFileException eFile; CFile fileSave; if (!fileSave.Open(sFile,CFile::modeReadWrite|CFile::shareDenyWrite|CFile::shareDenyRead|CFile::typeBinary,&eFile) ) { return FALSE; } _variant_t varChunk; long nLength = (long)fileSave.GetLength(); BYTE* pbuf; pbuf = new BYTE[nLength]; if(pbuf == NULL) return FALSE; fileSave.Read(pbuf,nLength); fileSave.Close(); pData = pbuf; nSize = nLength; return TRUE; } } return 0; } int CUIIADORXServer::GetSelBlob(LPCTSTR pszSQL,LPCTSTR pszFilePath) { // sFile = _T("temp$$.equ"); // sSQL.Format(_T("select package from aec_package where ID=%d"),_ttoi(sID)); CString sText = pszSQL; sText.MakeLower(); int nFr = sText.Find(_T("select")); int nTo = sText.Find(_T("from")); if (nFr != -1 && nTo != -1) { CString sPackageField = sText.Mid(nFr + 6,nTo - nFr - 6); sPackageField.TrimLeft(); sPackageField.TrimRight(); CUIIPackageDbOper packageDbOper; packageDbOper.SetDbSrv(this); CString sFile = pszFilePath; if ( packageDbOper.OutPackageToFile(sFile,sText,sPackageField,TRUE) ) { return TRUE; } } return 0; } BOOL CUIIADORXServer::ExecuteSQL(LPCTSTR pszStrSQL) { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->ExecuteSQL(pszStrSQL); } return FALSE; } BOOL CUIIADORXServer::IsDatabaseOpen() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; return pImpSrv->IsDatabaseOpen(); } return FALSE; } IDispatch* CUIIADORXServer::GetConnectionPtr() { if (m_pImp != NULL) { CUIIImpADORXServer* pImpSrv = (CUIIImpADORXServer*)m_pImp; _ConnectionPtr pConnect = pImpSrv->GetConnectionPtr(); return pConnect.Detach(); } return NULL; } void CUIIADORXServer::BeginTrans() { _ConnectionPtr pConnect(GetConnectionPtr()); pConnect->BeginTrans(); } void CUIIADORXServer::RollbackTrans() { _ConnectionPtr pConnect(GetConnectionPtr()); pConnect->RollbackTrans(); } void CUIIADORXServer::CommitTrans() { _ConnectionPtr pConnect(GetConnectionPtr()); pConnect->CommitTrans(); }