📄 otl3_hist.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2//EN"><HTML><HEAD> <TITLE>Oracle and Odbc Template Library, Version 3.1, History of the Project</TITLE> <META NAME="Author" CONTENT="Sergei Kuchin"> <META NAME="GENERATOR" CONTENT="Mozilla/3.03Gold (Win95; I) [Netscape]"> <META NAME="KeyWords" CONTENT="OTL, Oracle, ODBC, DB2, CLI, database API, C++, Template Library"></HEAD><BODY><UL><H1 ALIGN=CENTER>Oracle and Odbc Template Library, Version 3.1 </H1><P><BR><BR></P><H1 ALIGN=CENTER>History of the Project</H1><P>This project started with my early experiments on the Oracle Call Interfaceback in 1994. Before that I had worked with C++ and several database APIsin different platforms. The idea was relatively obvious: SQL as a querylanguage is based on the concept of data sets. The process of retrievingdata from and writing it to the database can be naturally expressed asdata streams. C++ had a concept of streams applied to files. </P><P>It was logical to combine the C++ streams and SQL as a language withdata streams. It still remains a mistery to me why that thought did notoccur to anybody else. Besides the idea itself, a good implementation wasneeded. It took me a while to realize that the simplest and most efficientimplementation would be via C++ templates. </P><P>I went through a few intermediate implementations that used conventionalobject oriented techniques like creating a class hierarchy with inheritanceand making an object library out of the source code. Some folks might haveused it. It is known as the Oracle SQL Class Library (OSCL). It was releasedin late 1995 / early 1996 time frame. At the time, I was working on H1Bvisa as a technical consultant in a small "body shop" calledMosakin Corp. That is why the OSCL was stored in Mosakin's Web site asthe "original product of the company." It seems that Mosakinhas changed its general direction of business and the OSCL is no longeravailable in the Web site. </P><P>The first real template version of the OTL (OTL 1.0) was made on topfor the Oracle Call Interface 7.x for Oracle 7 and it was released in late1996 / early 1997. </P><P>Around mid-1998 I received a lot of questions and requests from differentfolks who kept asking me about the OTL for the Oracle Call Interface 8.The framework of the OTL 1.0 was enchanced a little bit and migrated tothe OCI8. It became the second version of the OTL (OTL 2.0). This is theversion that is being used by the developer community. OTL 2.0 is availablefor the OCI7 and OCI8 in separate header files. I keep supporting it fornow.</P><P>In late 1998, I realized that the OTL framework could be migrated tothe ODBC API. That is how the Odbc Template Library came along. </P><P>Basically, all three OTL's (OTL/OCI7, OTL/OCI8 and OTL ODBC) were similarin the core but they were based on quite different API's. Each OTL wasaround 150Kb of source code, so the combined code was around 500Kb. Thenext logical step was to try to come up with a unified template streamframework. I created the unified framework and also developed so calledOTL-adaptors for the OCI7, OCI8 and ODBC. </P><P>The framework is truly template. The OTL-adaptors are just wrappersaround the API's, low level classes. The actual OTL classes are instancesof the template classes instantiated from the framework and the OTL-adaptors.The adaptor classes are substituted as parameters into the framework. </P><P>I am pleased to introduce the [unified] Oracle and Odbc Template Library(Version 3.1) to the developer community. It has enchanced functionality(e.g. support of the Large Object datatypes) and improved performance.In this kind of technology there is a potential to extend it even furtherto accomodate more databases. In fact, I tried the OTL 3.1 with DB2 5.2and it worked because the native DB2 API is ODBC compatible with extensions.</P><P>Sergei Kuchin</P><P><HR WIDTH="100%"></P><CENTER><P><A HREF="home.htm">Go Home</A></P></CENTER><P>Copyright © 1996, 2008, Sergei Kuchin, email: <A HREF="mailto:skuchin@aceweb.com">skuchin@aceweb.com</A>,<A HREF="mailto:skuchin@gmail.com">skuchin@yahogmail</A><SCRIPT Language="JavaScript"><!-- hide from old browsers var modDate = new Date(document.lastModified) document.write("<i> Last Updated:</i> " + (modDate.getMonth()+1) + "/" + modDate.getDate() + "/" + "0"+(modDate.getYear())%100+"."); //--> </SCRIPT>.</P><P><I>Permission to use, copy, modify and redistribute this document forany purpose is hereby granted without fee, provided that the above copyrightnotice appear in all copies. </I></P></UL></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -