亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? odbc_classgen.shtml

?? mfc資源大全包含MFC編程各個方面的源碼
?? SHTML
字號:
<HTML>
<HEAD>
   <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
   <META NAME="Author" CONTENT="Zafir Anjum">
   <TITLE>Tools - ODBC Class generator</TITLE>
</HEAD>
<body background="../fancyhome/back.gif" bgcolor="#FFFFFF" link="#B50029" vlink="#8E2323" alink="#FF0000" bgproperties="fixed">
<table WIDTH="100%">
<tr WIDTH="100%">
<td align=center><!--#exec cgi="/cgi/ads.cgi"--><td>
</tr>
</table>

<CENTER>
<H3>
<FONT COLOR="#AOAO99">ODBC Class Generator For Bulk Row Fetching</FONT></H3></CENTER>

<HR>

<p><font face="Arial">(Designed and developed by <a href="mailto:ShekarNarayanan@hotmail.com">Shekar Narayanan</a>)</font></font><font ></p>

<p></font><font >I have developed this Class Generator after using the CRecordset
for quite some time. CRecordset is great but it has lot of limitations and is SLOW. </p>

<p>Most of the time, I had to display thousands of records in a list view. Using the
CRecordset, it takes a lot of time. MFC also provides a way to do &#145;<strong>bulk fetch</strong>&#146;
but it is tedious to implement.</p>

<p>So, I created a class which will do the <b>bulk fetching</b> and also allow easy
inserts, update and delete. After creating tens of these kind of classes, it was no
difficult to automate the class creation process.</p>
<i><b>

<p>A simple comparison:</b></i></p>

<p>The code generated by this tool along with virtual list view <strong>gets and displays
5000 records from SQL server database in just</font><font > one second!</font></strong><font ><b> </b>Whereas, using the CRecordset, it takes <b>around 20 seconds. </b>These
numbers are based on 266 MHz Pentium with 64MB RAM..</p>

<p>&nbsp;</font><font FACE="Arial"><i><b></p>

<p>Features</b></i></font><font ></p>

<blockquote>
  <ul>
    <li>Easily create a class which uses Bulk Row Fetching for faster data retrieval</li>
    <li>Uses direct ODBC SDK calls which are easy to understand and flexible to modify</li>
    <li>More methods can be easily added to the object</li>
    <li>Creating Joins and using other SQL features is very easy, since the object uses direct
      SQL statements</li>
  </ul>
  <p></font>&nbsp;</p>
</blockquote>
<font FACE="Arial"><i><b>

<p>Usage of the Product</b></i></font><font SIZE="2"></p>

<p>Using the Class Generator is easy. </p>

<blockquote>
  <ul>
    <li>Click Open to display the list of Data Sources</li>
    <li>Select the Data Source and click Next</li>
    <li>Select the Table or View you want to use and click Next</li>
    <li>Click Finish</li>
  </ul>
</blockquote>

<p>A list view displays the columns in the table along with the default member variables.
You can easily change the name of the member variable and if you want to exclude any
column from the object, you can do that by simply clicking Remove button.</p>

<p><img src="odbc_classgen.jpg" WIDTH="823" HEIGHT="402"></p>

<p>&nbsp;After changing /removing the variable names, click the Create button to open the
Generate Dialog box. It shows the default values based the on the table name. After
modifying the values click the OK button to generate the code. You can also print this
list.</p>

<p>&nbsp;</p>

<p>Following is a sample header file generated by this tool:</font><font FACE="Courier" SIZE="2"></p>

<p>/*</p>

<p>**ConsultantsSet.h</p>

<p>**CONSULTANTS Definition file</p>

<p>*/</p>

<p>#if !defined(__DB_CONSULTANTS_FIELDS__)</p>

<p>#define __DB_CONSULTANTS_FIELDS__</p>

<p>#ifndef __AFXTEMPL_H__</p>

<p>#pragma message(&quot;Include AfxTempl.h in StdAfx.h for faster Compilation&quot;)</p>

<p>#include &lt;afxtempl.h&gt;</p>

<p>#endif</p>

<p>#define CONSULTANTS_NAME_SIZE 31</p>

<p>#define CONSULTANTS_HOME_ADDRESS_SIZE 81</p>

<p>#define CONSULTANTS_CLIENT_NAME_SIZE 31</p>

<p>#define CONSULTANTS_CLIENT_ADDRESS_SIZE 81</p>

<p>&nbsp;</p>

<p>//Internal Cache for the data</p>

<p>typedef struct</p>

<p>{</p>

<blockquote>
  <p>long m_ID;</p>
  <p>SDWORD m_IDInd;</p>
  <p>char m_Name[CONSULTANTS_NAME_SIZE];</p>
  <p>SDWORD m_NameInd;</p>
  <p>char m_HomeAddress[CONSULTANTS_HOME_ADDRESS_SIZE];</p>
  <p>SDWORD m_HomeAddressInd;</p>
  <p>char m_ClientName[CONSULTANTS_CLIENT_NAME_SIZE];</p>
  <p>SDWORD m_ClientNameInd;</p>
  <p>char m_ClientAddress[CONSULTANTS_CLIENT_ADDRESS_SIZE];</p>
  <p>SDWORD m_ClientAddressInd;</p>
</blockquote>

<p>}FF_DB_CONSULTANTS_FIELDS, *pFF_DB_CONSULTANTS_FIELDS;</p>

<p>&nbsp;</p>

<p>//structure to hold the final data</p>

<p>typedef struct</p>

<p>{</p>

<blockquote>
  <p>long m_ID;</p>
  <p>CString m_Name;</p>
  <p>CString m_HomeAddress;</p>
  <p>CString m_ClientName;</p>
  <p>CString m_ClientAddress;</p>
</blockquote>

<p>}DB_CONSULTANTS_FIELDS, *pDB_CONSULTANTS_FIELDS;</p>

<p>&nbsp;</p>

<p>//Class Definition</p>

<p>class CConsultantsSet</p>

<p>{</p>

<p>public:</p>

<p>//Standard constructor</p>

<p>CConsultantsSet(CDatabase* pDB = NULL);</p>

<p>//Standard Destructor</p>

<p>~CConsultantsSet();</p>

<p>//Operations</p>

<p>bool GetSpecific(pDB_CONSULTANTS_FIELDS);</p>

<p>bool Insert(pDB_CONSULTANTS_FIELDS);</p>

<p>bool Update(pDB_CONSULTANTS_FIELDS);</p>

<p>bool Delete(pDB_CONSULTANTS_FIELDS);</p>

<p>int Load();</p>

<p>//Attributes</p>

<p>CTypedPtrArray &lt;CPtrArray, pDB_CONSULTANTS_FIELDS&gt; m_aData;</p>

<p>private:</p>

<p>CDatabase* m_pDatabase;</p>

<p>HSTMT m_hstmt;</p>

<p>int m_nRowSetSize;</p>

<p>};</p>

<p>#endif</p>

<p>/*</p>

<p>** end file</p>

<p>*/</font><font SIZE="2"></p>

<p>&nbsp;</p>

<p>The header file contains two structures FF_DB_CONSULTANTS_FIELDS and
DB_CONSULTANTS_FIELDS. The first one is used for bulk row fetching. The second is used to
in a CTypedPtrArray and contains the actual data.</p>

<p>&nbsp;</font><font face="Arial"><i><b></p>

<p>Using the Generated Code in your Application</b></i></font><font SIZE="2"></p>

<p>In order to use this class in your application, create a regular MFC application with
database header support. The View can be either CFormView or CListView . In this example,
m_List is a CListCtrl.</font><font FACE="Courier" SIZE="2"></p>

<p>#include &quot;ConsultantSet.h&quot;</p>

<p>&nbsp;</p>

<p>void OnInitialUpdate()</p>

<p>{</p>

<p>&nbsp;&nbsp;&nbsp; . . . </p>

<p>&nbsp;&nbsp;&nbsp; CConsultantSet tblSet(&amp;theApp.m_DB);</p>

<p>&nbsp;&nbsp;&nbsp; int nCount = tblSet.Load();</p>

<p>&nbsp;&nbsp;&nbsp; for (int I = 0; I &lt; nCount; I++)</p>

<p>&nbsp;&nbsp;&nbsp; {</p>

<p>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; pDB_CONSULTANT_FIELDS pdbFields =
tblSet.m_aData.GetAt(I);</p>

<blockquote>
  <blockquote>
    <p>m_List.InsertItem(I, pdbFields-&gt;m_Name;</p>
    <p>m_List.SetItemText(I, pdbFields-&gt;m_ClientName);</p>
  </blockquote>
</blockquote>

<p>&nbsp;&nbsp;&nbsp; }</p>

<p>}</p>

<p>&nbsp;</p>

<p>If you want to insert an item to the table,</p>

<p>&nbsp;&nbsp;&nbsp; CConsultantSet tblSet(&amp;theApp.m_DB);</p>

<p>&nbsp;&nbsp;&nbsp; DB_CONSULTANT_FIELDS dbFields;</p>

<p>&nbsp;&nbsp;&nbsp; dbFields.m_ID = 100;</p>

<p>&nbsp;&nbsp;&nbsp; dbFields.m_Name = &quot;Some Name&quot;;</p>

<p>&nbsp;&nbsp;&nbsp; // Fill in rest of the fields</p>

<p>&nbsp;&nbsp;&nbsp; tblSet.Insert(&amp;dbFields);</p>

<p>&nbsp;</p>

<p>&nbsp;</p>

<p>Rest of the functions, follow the same standard and very easy to understand. I always
use a single CDatabase object in the Application class. Create a CDatabase member variable
in the CWinApp derived class and also make the 'theApp' as extern in the header file. This
way, you don't have to use AfxGetApp() and typecast it every time.</p>

<p>&nbsp;</font></p>

<p>This tool generates the code which can be compiled in VC++ 5.0. With minor
modification, it can be used with any C++ compiler.</p>

<p><font FACE="Courier" SIZE="2">&nbsp;</font>I have tested this tool with MS Access and
SQL Server only. So there may be a few bugs. If you encounter any bugs, please email me.</p>

<p>I would appreciate your ideas for enhancements.</p>

<p>&nbsp;</p>

<p>Acknowledgments:</p>

<p>I would like to thank the <a href="http://www.codeguru.com">CodeGuru</a> contributors
for List Control and Bitmap buttons I have used in this tool.</p>



<P><A HREF="odbc_classgen.zip">Download</A> 274K





<P>Posted on: March 8, 98.
<br>Changed the download file from EXE to ZIP - 3/10/98

<P>
<HR>
<TABLE BORDER=0 WIDTH="100%" >
<TR>
<TD WIDTH="33%"><FONT SIZE=-1><A HREF="http://www.codeguru.com">Goto HomePage</A></FONT></TD>

<TD WIDTH="33%">
<CENTER><FONT SIZE=-2>&copy; 1998 Zafir Anjum</FONT>&nbsp;</CENTER>
</TD>

<TD WIDTH="34%">
<DIV ALIGN=right><FONT SIZE=-1>Contact me: <A HREF="mailto:zafir@home.com">zafir@home.com</A>&nbsp;</FONT></DIV>
</TD>
</TR>
</TABLE>
</BODY>
</HTML>

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产精品中文欧美| 视频一区在线播放| av不卡免费电影| 国产精品乱码人人做人人爱| 成人一道本在线| 国产精品久久久久国产精品日日| 成人av电影在线网| 亚洲日穴在线视频| 精品视频在线免费看| 丝袜亚洲另类欧美| 精品国产a毛片| 国产91精品一区二区| 中文字幕一区二区三区四区| 欧美伊人久久久久久午夜久久久久| 国产成人免费网站| 亚洲国产精品成人综合 | 秋霞电影一区二区| 欧美成人a视频| 国产成都精品91一区二区三 | 亚洲色图欧美激情| 欧美视频在线一区二区三区| 日韩电影在线观看网站| 久久久精品免费观看| 91蝌蚪porny| 麻豆成人av在线| 国产日产欧美一区二区视频| 色婷婷国产精品久久包臀| 日韩av不卡一区二区| 欧美精品一区二区三区很污很色的| 成人app网站| 美女www一区二区| 国产精品欧美一区喷水| 欧美一级高清大全免费观看| 国产91在线观看丝袜| 五月婷婷另类国产| 亚洲国产电影在线观看| 欧美日产国产精品| 99精品视频中文字幕| 免费成人性网站| 亚洲视频图片小说| 久久久亚洲精品一区二区三区| 在线亚洲欧美专区二区| 国产精品一线二线三线精华| 亚洲午夜影视影院在线观看| 国产日韩欧美综合在线| 欧美一区欧美二区| 91日韩精品一区| 国产一区二区在线影院| 午夜精品久久一牛影视| 亚洲欧洲精品一区二区精品久久久| 在线成人高清不卡| 99久久精品情趣| 国产又粗又猛又爽又黄91精品| 偷拍亚洲欧洲综合| 亚洲美女一区二区三区| 国产视频911| 精品日韩99亚洲| 在线电影院国产精品| 欧美优质美女网站| 91在线国产观看| 粉嫩av一区二区三区| 精品在线播放午夜| 麻豆专区一区二区三区四区五区| 亚洲成人av一区二区三区| 亚洲蜜桃精久久久久久久| 亚洲国产成人一区二区三区| 欧美精品一区二区三区蜜桃视频| 日韩欧美成人激情| 欧美一区二区三区日韩| 欧美日本一区二区三区四区| 欧美日韩一区久久| 在线观看不卡一区| 色噜噜偷拍精品综合在线| 波多野结衣中文字幕一区 | 粉嫩13p一区二区三区| 国产主播一区二区三区| 精品一区二区三区在线播放| 老司机精品视频在线| 老司机精品视频一区二区三区| 热久久国产精品| 美日韩一区二区三区| 日本vs亚洲vs韩国一区三区二区| 日韩av电影免费观看高清完整版| 日本欧美在线观看| 麻豆视频一区二区| 国产精品一区二区在线观看不卡| 国产精一品亚洲二区在线视频| 国产不卡免费视频| www..com久久爱| 色婷婷久久久久swag精品| 色婷婷久久综合| 欧美一区二区三区四区五区| 日韩欧美国产1| 国产嫩草影院久久久久| 亚洲人成人一区二区在线观看 | 欧美亚洲动漫制服丝袜| 欧美日韩在线综合| 日韩一区二区免费在线电影| 亚洲精品在线免费播放| 国产欧美精品国产国产专区| 亚洲视频综合在线| 亚洲电影第三页| 国产真实乱偷精品视频免| 粉嫩aⅴ一区二区三区四区五区 | 亚洲不卡一区二区三区| 免费高清在线一区| 成人动漫在线一区| 欧美探花视频资源| 欧美va在线播放| 亚洲桃色在线一区| 天天做天天摸天天爽国产一区| 激情五月激情综合网| 91视频91自| 欧美成人bangbros| 亚洲丝袜自拍清纯另类| 蜜桃久久久久久久| aaa国产一区| 日韩一级高清毛片| 中文字幕日本乱码精品影院| 日韩国产欧美在线播放| 国产成人av福利| 欧美片网站yy| 中文欧美字幕免费| 日韩精品欧美成人高清一区二区| 国产福利一区二区| 欧美色综合天天久久综合精品| 精品免费国产一区二区三区四区| 亚洲欧美日韩中文播放 | 亚洲成a人v欧美综合天堂| 国产精品一区二区男女羞羞无遮挡| 欧美视频日韩视频| 中文字幕+乱码+中文字幕一区| 免费一级片91| 色综合天天综合狠狠| 精品国产伦一区二区三区观看方式 | 国产麻豆精品视频| 欧美精品自拍偷拍动漫精品| 国产精品色眯眯| 另类调教123区| 欧美日韩在线观看一区二区| 欧美国产1区2区| 狠狠久久亚洲欧美| 欧美另类久久久品| 一区二区三区中文在线观看| 国产美女娇喘av呻吟久久| 欧美一区二区三区视频免费 | 五月激情综合色| 在线观看www91| 亚洲欧洲日韩一区二区三区| 国产精品影音先锋| 久久这里只有精品6| 另类小说综合欧美亚洲| 正在播放一区二区| 亚洲成人黄色小说| 欧美综合一区二区| 亚洲精品久久7777| 99精品国产热久久91蜜凸| 中文字幕成人在线观看| 国产高清不卡二三区| 久久久久久久精| 国产裸体歌舞团一区二区| 日韩久久免费av| 蜜臀va亚洲va欧美va天堂 | 一本大道久久a久久综合| 日本一区二区三区电影| 国产成人在线色| 国产欧美一区二区三区在线看蜜臀 | 欧美一区二区三区四区久久| 日韩电影在线一区| 日韩三级电影网址| 麻豆免费看一区二区三区| 日韩欧美一级片| 久久99久久精品欧美| 精品999在线播放| 国产福利一区二区三区| 国产精品电影一区二区| 色视频成人在线观看免| 亚洲永久免费视频| 欧美日韩高清一区二区不卡| 日韩中文字幕1| 精品久久免费看| 国产成人福利片| 亚洲美女一区二区三区| 欧美日韩视频在线观看一区二区三区 | av午夜一区麻豆| 亚洲三级在线看| 欧美视频完全免费看| 免费精品视频最新在线| 国产亚洲精品bt天堂精选| av电影天堂一区二区在线| 亚洲综合一区二区三区| 欧美一级精品大片| 国产不卡高清在线观看视频| 亚洲另类春色校园小说| 91精品国产一区二区三区| 国产在线精品一区二区不卡了| 国产精品对白交换视频 | 91丨porny丨国产| 亚洲成人激情综合网| 久久综合狠狠综合久久激情|