GuiAdoTest.cpp
上传用户:wlkj888
上传日期:2022-08-01
资源大小:806k
文件大小:8k
源码类别:

对话框与窗口

开发平台:

Visual C++

  1. // GuiAdoTest.cpp : Defines the class behaviors for the application.
  2. //
  3. #include "stdafx.h"
  4. #include "GuiAdoTest.h"
  5. #include "GuiAdoTestDlg.h"
  6. #ifdef _DEBUG
  7. #define new DEBUG_NEW
  8. #undef THIS_FILE
  9. static char THIS_FILE[] = __FILE__;
  10. #endif
  11. /////////////////////////////////////////////////////////////////////////////
  12. // CGuiAdoTestApp
  13. BEGIN_MESSAGE_MAP(CGuiAdoTestApp, CWinApp)
  14. //{{AFX_MSG_MAP(CGuiAdoTestApp)
  15. // NOTE - the ClassWizard will add and remove mapping macros here.
  16. //    DO NOT EDIT what you see in these blocks of generated code!
  17. //}}AFX_MSG
  18. ON_COMMAND(ID_HELP, CWinApp::OnHelp)
  19. END_MESSAGE_MAP()
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CGuiAdoTestApp construction
  22. CGuiAdoTestApp::CGuiAdoTestApp()
  23. {
  24. // TODO: add construction code here,
  25. // Place all significant initialization in InitInstance
  26. }
  27. /////////////////////////////////////////////////////////////////////////////
  28. // The one and only CGuiAdoTestApp object
  29. CGuiAdoTestApp theApp;
  30. /////////////////////////////////////////////////////////////////////////////
  31. // CGuiAdoTestApp initialization
  32. BOOL CGuiAdoTestApp::InitInstance()
  33. {
  34. AfxEnableControlContainer();
  35. // Standard initialization
  36. // If you are not using these features and wish to reduce the size
  37. //  of your final executable, you should remove from the following
  38. //  the specific initialization routines you do not need.
  39. #ifdef _AFXDLL
  40. Enable3dControls(); // Call this when using MFC in a shared DLL
  41. #else
  42. Enable3dControlsStatic(); // Call this when linking to MFC statically
  43. #endif
  44. CString strConnection = _T("Driver={Microsoft Access Driver (*.mdb)};"
  45. "Dbq=\guilib1.5\bin\config.mdb;Uid=;Pwd=;");              
  46. m_cn.Open(strConnection);
  47. if (m_cn.IsConnect()) 
  48. {
  49. m_rs= m_cn.Execute("SELECT *  FROM JobTable");
  50. int numFiles=m_rs->GetNumFields();
  51. while (! m_rs->IsEof())
  52. {
  53. //CString time;
  54. //m_rs->GetFormatDate(7,time);
  55. AfxMessageBox(m_rs->GetCollect("JobName"));
  56. m_rs->MoveNext();
  57. }
  58. //recorer por campo
  59. m_rs->MoveFirst();
  60. for (int i=0; i < numFiles; i++)
  61. {
  62. CGuiField field=m_rs->GetField(i);
  63. //AfxMessageBox(field.GetName());
  64. CString strValue;
  65. field.GetValue(strValue);
  66. // AfxMessageBox(strValue);
  67. }
  68. }
  69. //---------------------------------------
  70. /*if (m_rs->FindFirst("Nombre Like 'pet*'"))
  71. AfxMessageBox(m_rs->GetCollect("Ename"));
  72. m_rs->Close();
  73. */
  74. //---------------------------------------------
  75. /*CGuiCommand* pCommand=new CGuiCommand();
  76. pCommand->SetActiveConnection(&m_cn);
  77. pCommand->SetCommandText("Select * from emp");
  78. CGuiRecordSet* m_rs1=pCommand->Execute();
  79. AfxMessageBox(m_rs1->GetCollect("Nombre"));
  80. m_rs1->Close();*/
  81. //-----------------------------
  82. /*CGuiRecordSet mr;
  83. mr.Open(m_cn.GetConecction(),"Select * from emp",adOpenKeyset,adLockOptimistic);
  84. mr.Delete();
  85. //--------------------------------
  86. BOOL res=mr.AddNew();
  87. mr.SetValue("Nombre","Peter");
  88. res=mr.Update();
  89. mr.Close();
  90. */
  91. //--------------------------------------
  92. //GetEmpName (inEmpno IN NUMBER, outEmpName OUT VARCHAR2)
  93. // CREATE OR REPLACE procedure DAYPRO.SP_DIAS360_365 (fecha1 in out date, fecha2 in out date, dias in out number,ind in varchar2) IS
  94. /* _variant_t vt;
  95. _variant_t vto;
  96. vto.vt=VT_I2;
  97. COleDateTime* fecha1= new COleDateTime (2001,12,1,0,0,0);
  98. COleDateTime* fecha2= new COleDateTime (2002,12,1,0,0,0);
  99. CString str;
  100. CGuiCommand* pCommand=new CGuiCommand();
  101. _variant_t dias;
  102. dias.vt=VT_R4;
  103. _variant_t ind;
  104. ind.vt=VT_BSTR;
  105. CString szCad="0";
  106. ind.bstrVal=szCad.AllocSysString();
  107. pCommand->SetActiveConnection(&m_cn);
  108. pCommand->SetCommandText("SP_DIAS360_365",adCmdStoredProc);
  109. CGuiParameter* pParam1=pCommand->CreateParameter(_T("fecha1"),sizeof(DATE),adDBTimeStamp,adParamInputOutput);
  110. CGuiParameter* pParam2=pCommand->CreateParameter(_T("fecha2"),sizeof(DATE),adDBTimeStamp,adParamInputOutput);
  111. CGuiParameter* pParam3=pCommand->CreateParameter(_T("dias"),sizeof(long),adInteger,adParamInputOutput);
  112. CGuiParameter* pParam4=pCommand->CreateParameter(_T("ind"),200,adVarChar,adParamInputOutput);
  113. pParam1->SetValue(fecha1);
  114. pParam1->SetValue(fecha2);
  115. pCommand->Append(pParam1); 
  116. pCommand->Append(pParam2);
  117. pCommand->Append(pParam3);
  118. pCommand->Append(pParam4);
  119. CGuiRecordSet* m_rs1=pCommand->Execute();
  120. _variant_t idias;
  121. long nVal;
  122. pParam3->GetValue(nVal);
  123. pParam4->GetValue(szCad);
  124. int numFiles=m_rs1->GetNumFields();
  125. m_rs1->MoveFirst();
  126. for (int i=0; i < numFiles; i++)
  127. {
  128. CGuiField field=m_rs1->GetField(i);
  129. //AfxMessageBox(field.GetName());
  130. CString strValue;
  131. field.GetValue(strValue);
  132. // AfxMessageBox(strValue);
  133. }
  134. CGuiCommand* pCommand=new CGuiCommand();
  135. _variant_t dias,dias1;
  136. _variant_t ind;
  137. ind.vt=VT_BSTR;
  138. CString szCad="0";
  139. ind.bstrVal=szCad.AllocSysString();
  140. pCommand->SetActiveConnection(&m_cn);
  141. pCommand->SetCommandText("sp_OutputTest",adCmdStoredProc);
  142. CGuiParameter* pParam1=pCommand->CreateParameter(_T("IN1"),sizeof(int),adInteger,adParamInput);
  143. CGuiParameter* pParam2=pCommand->CreateParameter(_T("OutInt"),sizeof(int),adInteger,adParamOutput);
  144. CGuiParameter* pParam3=pCommand->CreateParameter(_T("OutChar"),200,adVarChar,adParamOutput);
  145. pParam1->SetValue(34);
  146. // pCommand->Append(pParam0); 
  147. pCommand->Append(pParam1); 
  148. pCommand->Append(pParam2);
  149. pCommand->Append(pParam3);
  150. CGuiRecordSet* m_rs1=pCommand->Execute();
  151. _variant_t idias;
  152. long nVal;
  153. pParam3->GetValue(szCad);
  154. pParam2->GetValue(nVal);
  155. int numFiles=m_rs1->GetNumFields();
  156. if (numFiles != 0)
  157. {
  158. m_rs1->MoveFirst();
  159. for (int i=0; i < numFiles; i++)
  160. {
  161. CGuiField field=m_rs1->GetField(i);
  162. //AfxMessageBox(field.GetName());
  163. CString strValue;
  164. field.GetValue(strValue);
  165. // AfxMessageBox(strValue);
  166. }
  167. }
  168. m_rs1->Close();
  169. */ //-------------------------------------------------------------------------
  170. CGuiCommand* pCommand=new CGuiCommand();
  171. pCommand->SetActiveConnection(&m_cn);
  172. pCommand->SetCommandText("fcotest",adCmdStoredProc);
  173. /*
  174. create or replace procedure fcoTest(fecha1 in date, numero in number,fecha2 out date,resultado out number) IS
  175. BEGIN
  176.  fecha2:=fecha1;
  177.  resultado:=numero*23;
  178. END fcoTest; 
  179. */
  180. CGuiParameter* pParam1=pCommand->CreateParameter(_T("fecha1"),sizeof(DATE),adDBTimeStamp);
  181. CGuiParameter* pParam2=pCommand->CreateParameter(_T("numero"),sizeof(long),adNumeric);
  182. CGuiParameter* pParam3=pCommand->CreateParameter(_T("fecha2"),sizeof(DATE),adDBTimeStamp,adParamOutput);
  183. CGuiParameter* pParam4=pCommand->CreateParameter(_T("resultado"),sizeof(long),adNumeric,adParamOutput);
  184. pParam1->SetValue(COleDateTime (2001,12,1,0,0,0));
  185. // pCommand->Append(pParam0); 
  186. pCommand->Append(pParam1); 
  187. pParam2->SetValue(10);
  188. pCommand->Append(pParam2);
  189. pCommand->Append(pParam3); 
  190. pCommand->Append(pParam4);
  191. CGuiRecordSet* m_rs1=pCommand->Execute();
  192. CString  fecha1;
  193. long iVal;
  194. pParam3->GetFormatDate(fecha1);
  195. pParam4->GetValue(iVal);
  196. int numFiles=m_rs1->GetNumFields();
  197. if (numFiles != 0)
  198. {
  199. m_rs1->MoveFirst();
  200. for (int i=0; i < numFiles; i++)
  201. {
  202. CGuiField field=m_rs1->GetField(i);
  203. //AfxMessageBox(field.GetName());
  204. CString strValue;
  205. field.GetValue(strValue);
  206. // AfxMessageBox(strValue);
  207. }
  208. }
  209. m_rs1->Close();
  210. //-------------------------------------------------------------------------
  211.   CGuiAdoTestDlg dlg;
  212. m_pMainWnd = &dlg;
  213. int nResponse = dlg.DoModal();
  214. if (nResponse == IDOK)
  215. {
  216. // TODO: Place code here to handle when the dialog is
  217. //  dismissed with OK
  218. }
  219. else if (nResponse == IDCANCEL)
  220. {
  221. // TODO: Place code here to handle when the dialog is
  222. //  dismissed with Cancel
  223. }
  224. // Since the dialog has been closed, return FALSE so that we exit the
  225. //  application, rather than start the application's message pump.
  226. return FALSE;
  227. }