<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>CodeCentral Submissions for Craig Stuntz</title>
    <link>http://cc.embarcadero.com/</link>
    <description>CodeCentral Submissions for Craig Stuntz</description>
    <item>
      <title>Functional Programming in Delphi 2009 CodeRage Source Code Only</title>
      <description>Source code for my CodeRage '08 presentation on Functional Programming in Delphi 2009.</description>
      <link>http://cc.embarcadero.com/Item/26324</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=26324" type="application/zip" length="10697" />
      <pubDate>2008-12-02T16:37:11</pubDate>
      <dc:date>2008-12-02T16:37:11</dc:date>
      <guid>http://cc.embarcadero.com/Item/26324</guid>
    </item>
    <item>
      <title>Memoize implementation for Delphi 2009</title>
      <description>Memoization is a generic solution to the problem of caching function results. The function Memoize accepts a function as an argument and returns a function which does exactly the same thing, except that it caches the results.</description>
      <link>http://cc.embarcadero.com/Item/26106</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=26106" type="application/zip" length="9592" />
      <pubDate>2008-10-01T21:42:34</pubDate>
      <dc:date>2008-10-01T21:42:34</dc:date>
      <guid>http://cc.embarcadero.com/Item/26106</guid>
    </item>
    <item>
      <title>Generic Statistics Demo</title>
      <description>See this series of blog posts for more details:http://blogs.teamb.com/craigstuntz/2008/09/09/37833</description>
      <link>http://cc.embarcadero.com/Item/26088</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=26088" type="application/zip" length="10547" />
      <pubDate>2008-09-24T14:56:58</pubDate>
      <dc:date>2008-09-24T14:56:58</dc:date>
      <guid>http://cc.embarcadero.com/Item/26088</guid>
    </item>
    <item>
      <title>Delphi Unit Testing Power Tools source code only</title>
      <description>Source code (only, no video in this download) for my CodeRage II presentation on Delphi Unit Testing Power tools.</description>
      <link>http://cc.embarcadero.com/Item/25266</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=25266" type="application/zip" length="33158" />
      <pubDate>2007-11-28T18:54:57</pubDate>
      <dc:date>2007-11-28T18:54:57</dc:date>
      <guid>http://cc.embarcadero.com/Item/25266</guid>
    </item>
    <item>
      <title>InterBase PLANalyzer 1.1</title>
      <description>(Old version; get 1.2.1 now.)InterBase PLANalyzer allows developers to easily understand the query optimization PLANs which InterBase uses to execute SQL statements by presenting them in graphical form. Additionally, it provides useful information on indices used by the queries at the click of a mouse, and delivers the most accurate read statistics available anywhere.The Help for InterBase PLANalyzer is an extensive course in understanding and optimizing InterBase SQL and metadata.Version 1.1 supports InterBase 5.6-7.0, supports asynchronous query cancellation on IB 6.5 and higher, and adds many new features and bug fixes.</description>
      <link>http://cc.embarcadero.com/Item/19030</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=19030" type="application/zip" length="1354567" />
      <pubDate>2006-12-07T15:04:41</pubDate>
      <dc:date>2006-12-07T15:04:41</dc:date>
      <guid>http://cc.embarcadero.com/Item/19030</guid>
    </item>
    <item>
      <title>InterBase PLANalyzer 1.2.1</title>
      <description>InterBase PLANalyzer allows developers to easily understand the query optimization PLANs which InterBase uses to execute SQL statements by presenting them in graphical form. Additionally, it provides useful information on indices used by the queries at the click of a mouse, and delivers the most accurate read statistics available anywhere.The Help for InterBase PLANalyzer is an extensive course in understanding and optimizing InterBase SQL and metadata.Version 1.2.1 fixes a bug in displaying the Help. Version 1.2 supports InterBase 5.6-2007, supports asynchronous query cancellation on IB 6.5 and higher, adds printing of results and other productivity enhancements, fixes several bugs.</description>
      <link>http://cc.embarcadero.com/Item/24115</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=24115" type="application/zip" length="1558452" />
      <pubDate>2006-12-07T14:59:44</pubDate>
      <dc:date>2006-12-07T14:59:44</dc:date>
      <guid>http://cc.embarcadero.com/Item/24115</guid>
    </item>
    <item>
      <title>InterBase Performance Monitor 1.1</title>
      <description>(Old version, get 7.5.1 now)InterBase Performance Monitor is a free utility which assists in administering an InterBase server. The tool allows you to easily see (and optionally alter) who and what is consuming resources on your InterBase server.The simple, graphical user interface allows you to view detailed statistics about the current database, memory use, attached users, transactions, tables, views, and stored procedures in use. You can drop a user, commit or roll back a transaction, or cancel a statement if you have the required privileges.Version 1.1 adds many new features:    * Monitoring now uses less server resources.    * Memory tab can now display as a graph with history or a grid with more detail.    * Logging feature allows saving snapshots of DB/server state to tables in your database.    * Elapsed time column added to Statements and Transactions tabs.    * Added ability to display the interbase.log file from the currently connected server and statistics from current database.    * Added preliminary Help.    * Improved icons and Windows XP support.    * A few bugs were fixed. The most important was fixing incorrect numbers appearing in the memory grid.InterBase Performance Monitor requires InterBase 7, and only works with databases created/restored by InterBase 7.</description>
      <link>http://cc.embarcadero.com/Item/19494</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=19494" type="application/zip" length="1478021" />
      <pubDate>2005-09-22T16:18:36</pubDate>
      <dc:date>2005-09-22T16:18:36</dc:date>
      <guid>http://cc.embarcadero.com/Item/19494</guid>
    </item>
    <item>
      <title>InterBase Performance Monitor 7.5.1</title>
      <description>InterBase Performance Monitor is a free utility which assists in administering an InterBase server. The tool allows you to easily see (and optionally alter) who and what is consuming resources on your InterBase server.The simple, graphical user interface allows you to view detailed statistics about the current database, memory use, attached users, transactions, tables, views, and stored procedures in use. You can drop a user, commit or roll back a transaction, or cancel a statement if you have the required privileges.Version 7.5 adds new features:    * Context menus on grid column headers.    * Full support for new performance monitoring features in InterBase 7.5.    * Visualization for logged data.    * Monitor-&amp;gt;Show Fields allows access to columns normally hidden (such as IDs).    * Ability to save grid data in several different formats (HTML, CSV, XML, Excel)    * Record count displayed in status bar.    * IB Performance Monitor's attachment, statements, and transactions are now hidden by default. Use Monitor-&amp;gt;Show Performance Monitor Data to turn back on.    * Better support for non-administrative (non-Windows administrators, that is) users.    * Grids now support multi-select.    * User interface visual improvements.    * Bug fixed where incorrect charset used in the IBConsole version of Performance Monitor.    * Version number now synced with InterBase.</description>
      <link>http://cc.embarcadero.com/Item/23629</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=23629" type="application/zip" length="1537301" />
      <pubDate>2005-09-22T15:28:25</pubDate>
      <dc:date>2005-09-22T15:28:25</dc:date>
      <guid>http://cc.embarcadero.com/Item/23629</guid>
    </item>
    <item>
      <title>InterBase Performance Monitor</title>
      <description>(Old version - get 1.1, now.) InterBase Performance Monitor is a free utility which assists in administering an InterBase server. The tool allows you to easily see (and optionally alter) who and what is consuming resources on your InterBase server.The simple, graphical user interface allows you to view detailed statistics about the current database, memory use, attached users, transactions, tables, views, and stored procedures in use.  You can drop a user, commit or roll back a transaction, or cancel a statement if you have the required privileges.  InterBase Performance Monitor requires InterBase 7, and only works with databases created/restored by InterBase 7.</description>
      <link>http://cc.embarcadero.com/Item/19029</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=19029" type="application/zip" length="1342513" />
      <pubDate>2005-03-29T16:17:44</pubDate>
      <dc:date>2005-03-29T16:17:44</dc:date>
      <guid>http://cc.embarcadero.com/Item/19029</guid>
    </item>
    <item>
      <title>Crystal Reports RDC Demo Application</title>
      <description>Sample project showing how to use the Crystal Reports Report Design Component (RDC) ActiveX controls. Note that you &amp;lt;b&amp;gt;must&amp;lt;/b&amp;gt; import both the RDC and CR Viewer 9 type libraries before opening the project in Delphi.</description>
      <link>http://cc.embarcadero.com/Item/23061</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=23061" type="application/zip" length="7517" />
      <pubDate>2005-02-24T14:22:22</pubDate>
      <dc:date>2005-02-24T14:22:22</dc:date>
      <guid>http://cc.embarcadero.com/Item/23061</guid>
    </item>
    <item>
      <title>InterBase PLANalyzer</title>
      <description>This version is now obsolete.  Get version 1.1 instead.InterBase PLANalyzer allows developers to easily understand the query optimization PLANs which InterBase uses to execute SQL statements.  Additionally, it provides useful information on indices used by the queries at the click of a mouse, and delivers the most accurate read statistics of any InterBase tool presently available.Version 1.01 extensively improves the Help.</description>
      <link>http://cc.embarcadero.com/Item/16721</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=16721" type="application/zip" length="1240904" />
      <pubDate>2002-11-08T18:33:33</pubDate>
      <dc:date>2002-11-08T18:33:33</dc:date>
      <guid>http://cc.embarcadero.com/Item/16721</guid>
    </item>
    <item>
      <title>InterBase in a Multitier World</title>
      <description>The topic of creating multi-tier clients and application servers could easily -- and does -- fill several books.  It is far too large for one presentation.  This paper, therefore, is not intended to be a comprehensive guide to the subject, but, rather, is designed to shed more light on some areas which existing references don't cover in great detail.  In particular, this paper examines how to integrate InterBase into common patterns for multi-tier development.Before reading this paper you should be generally familiar with the DataSnap framework in Delphi.  No attempt will be made to explain how to use TClientDataset!  (Note:  If you're not familiar with the DataSnap architecture in Delphi, see the papers listed in the References section of this paper and the various applications in the DemosMidas directory of your Delphi installation.)  You should also be very comfortable working with InterBase.So what will the paper cover?      * Using multiple remote data modules and data module inheritance to partition and reuse code in both the client application and  the app server.    * Using InterBase-specific features such as generators.    * Understanding transaction management in DataSnap..    * Understanding state, especially as it pertains to database user security.    * Choosing a threading option which works with the InterBase client.</description>
      <link>http://cc.embarcadero.com/Item/19041</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=19041" type="application/zip" length="40829" />
      <pubDate>2002-10-28T18:16:41</pubDate>
      <dc:date>2002-10-28T18:16:41</dc:date>
      <guid>http://cc.embarcadero.com/Item/19041</guid>
    </item>
    <item>
      <title>InterBase PLANalyzer Help</title>
      <description>The manual for InterBase PLANalyzer 1.01 is also an extensive guide to optimizing IB SQL and metadata.</description>
      <link>http://cc.embarcadero.com/Item/18228</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=18228" type="application/zip" length="111554" />
      <pubDate>2002-07-03T21:38:46</pubDate>
      <dc:date>2002-07-03T21:38:46</dc:date>
      <guid>http://cc.embarcadero.com/Item/18228</guid>
    </item>
    <item>
      <title>InterBase Installation and Deployment Options</title>
      <description>This session will discuss the various options available for installing InterBase, including using the Installation API, TIBInstall, the Borland Setup.exe package, and various other installation packages. This session will show you what is needed to create your own installation scripts using Wise, InstallShield,(r) MSI, etc. </description>
      <link>http://cc.embarcadero.com/Item/16839</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=16839" type="application/zip" length="60293" />
      <pubDate>2001-11-16T22:14:41</pubDate>
      <dc:date>2001-11-16T22:14:41</dc:date>
      <guid>http://cc.embarcadero.com/Item/16839</guid>
    </item>
    <item>
      <title>InterBase Connectivity</title>
      <description>As many of you will be aware InterBase is a high performance, relational database management system, providing SQL92 conformance, good transaction model, extensible user defined functions, and powerful stored procedures. However as I am sure you are all more than aware, all that's of no use, if you can't connect to and provide data for your application, web server or development system. Luckily, the connectivity options available to potential user of InterBase are legion, in fact to a new recruit, the number and range of options may be somewhat daunting. Compared to many of the other relational databases that are available, InterBase appears to be one of the simplest to install, and by using the available console and command line tools, connect, and retrieve data via simple SQL statements. This talk is aimed at both the new and existing user of InterBase who may be in this position. Having installed InterBase and verified its running, then having created a few test tables and inserted some data using either IBConsole or isql, you are now wondering what to do next. It is not my intention, in this talk, to cover connection via IBX, BDE or IBObjects, these methods have been very well documented elsewhere and the audience may well have more experience of these methods than I do. Instead it is my intention to investigate the many other options available to the programmer or system designer, which while they may be industry standards in their own right, may not in the past, have been associated with InterBase. I will cover general connections methods including ODBC, JDBC and Perl DBI drivers, and also discuss how InterBase data may be presented via the World Wide Web, using servers such as Apache and Microsoft's Internet Information Server, using active server pages, ADO, PHP, ColdFusion, and iHTML to name a few. Before continuing with general connectivity issues, I should take a few moments to introduce both myself, and Easysoft the company who are generous enough to pay me to program computers during the day. I am responsible for the Easysoft ODBC Driver for InterBase, which has been adopted by Borland, for their certified release of InterBase 6. By responsible, I mean that having written the driver, I also provide second line support, behind the Easysoft support desk team. I am also involved in any future developments that may take place with InterBase and Easysoft. Many of you who follow, the several InterBase, mailing lists and newsgroups, may have seen my postings, which I hope have been regarded as informative, and with luck, correct. I am also the current leader of the unixODBC open source project, about which I will talk in greater detail a little later. </description>
      <link>http://cc.embarcadero.com/Item/16837</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=16837" type="application/zip" length="56148" />
      <pubDate>2001-11-16T22:11:07</pubDate>
      <dc:date>2001-11-16T22:11:07</dc:date>
      <guid>http://cc.embarcadero.com/Item/16837</guid>
    </item>
    <item>
      <title>Encrypting InterBase Network Traffic on-the-fly with Delphi</title>
      <description>Since TCP/IP is a routable protocol, encrypting InterBase network traffic can be achieved by using a client/server type solution. Using such a solution, an encryption program needs to be installed on the client network and all client network traffic must be transferred to it. This program takes responsibility of the encryption, and then sends the data (in encrypted form) to the server. Here another program listens to the traffic, decrypts it, and sends it to InterBase. The solution is similar to a primitive VPN solution without any authentication features. The solution is efficient since no extra data needs to be transferred, and no modifications are required to application code (except network settings). This article describes how to encrypt InterBase TCP/IP network on the fly with a Delphi application. The sample application, IBSec (InterBase Security), can operate in two modes so that the exact same application can be used both on the client and the server. The basic functionality of the application is simple. It accepts a TCP/IP connection, and forwards all data to the specified host. Depending on the operation mode, it either encrypts or decrypts the traffic before forwarding it. Without IBSec, an InterBase client application contacts the InterBase server using TCP port 3050. When IBSec is used, the InterBase client application will not directly contact the InterBase server. Instead, it will contact IBSec on the same TCP port 3050.IBSec will then forward the traffic to another instance of IBSec, which will further forward the traffic to the InterBase server. When the InterBase server wishes to send something to the client (for instance, query results), the exactly same things happen in reverse order.</description>
      <link>http://cc.embarcadero.com/Item/16838</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=16838" type="application/zip" length="253882" />
      <pubDate>2001-11-16T22:08:31</pubDate>
      <dc:date>2001-11-16T22:08:31</dc:date>
      <guid>http://cc.embarcadero.com/Item/16838</guid>
    </item>
    <item>
      <title>Building UDF Libraries</title>
      <description>This article is both a quick introduction to writing simple User Defined Functions (UDFs) for InterBase and a fairly complete reference guide to UDF programming techniques.  Accordingly, it is divided into two sections.In the first section, the reader will learn how to quickly create simple UDFs in Delphi.  Since UDFs, in general, should be simple, this section may be all that is necessary for most InterBase users.  In the second section, we&amp;#8217;ll explore the reasons behind the suggestions in the first section.What is a UDF?  A user defined function (UDF) in InterBase is merely a function written in any programming language that is compiled into a shared library. Under Windows platforms, shared libraries are commonly referred to as dynamic link libraries (DLL's).  This simple use of shared libraries provides the developer with a large amount of power and flexibility. Virtually any function that can be exposed through a DLL can be used by InterBase. This comment, however, should be taken with a grain of salt &amp;#8212; the intent of a UDF is to perform some small operation that is not available in SQL or InterBase&amp;#8217;s stored procedure language.  An example of a UDF is function Modulo (Numerator, Denominator: Integer): IntegerDivide Numerator by Denominator and return the remainder. This function is essential in many routines, but it is not available in InterBase&amp;#8217;s DSQL language.</description>
      <link>http://cc.embarcadero.com/Item/17065</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=17065" type="application/zip" length="83609" />
      <pubDate>2001-11-15T17:50:00</pubDate>
      <dc:date>2001-11-15T17:50:00</dc:date>
      <guid>http://cc.embarcadero.com/Item/17065</guid>
    </item>
    <item>
      <title>TIBBDEDatabase - Share InterBase connections between IBX and BDE</title>
      <description>A subclass of TIBDatabase which introduces a BDEDatabase property to allow sharing a single InterBase database connection between a TDatabase and a TIBDatabase.</description>
      <link>http://cc.embarcadero.com/Item/15723</link>
      <enclosure url="http://cc.embarcadero.com/Download.aspx?id=15723" type="application/zip" length="2351" />
      <pubDate>2001-03-16T20:22:51</pubDate>
      <dc:date>2001-03-16T20:22:51</dc:date>
      <guid>http://cc.embarcadero.com/Item/15723</guid>
    </item>
  </channel>
</rss>