<?xml version="1.0" encoding="utf-8"?>
<feed xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xml:lang="en-us" xmlns="http://www.w3.org/2005/Atom">
  <title>You Can't Win</title>
  <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/" />
  <link rel="self" href="http://www.youcantwin.com/dasblogce/SyndicationService.asmx/GetAtom" />
  <icon>favicon.ico</icon>
  <updated>2008-11-10T07:13:39.256375-08:00</updated>
  <author>
    <name>Rich Werning</name>
  </author>
  <subtitle>RJ's blog - stuff that interests, frustrates and fasinates me</subtitle>
  <id>http://www.youcantwin.com/dasblogce/</id>
  <generator uri="http://www.dasblog.net" version="2.0.7180.0">DasBlog</generator>
  <entry>
    <title>Marine Corps Birthday - 10 November, 1775</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/11/10/MarineCorpsBirthday10November1775.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,da813c44-cba8-4043-890b-9037402642b0.aspx</id>
    <published>2008-11-10T07:12:29.397-08:00</published>
    <updated>2008-11-10T07:13:39.256375-08:00</updated>
    <category term="Military" label="Military" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Military.aspx" />
    <content type="html">&lt;p&gt;
&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;strong&gt;From &lt;a href="http://www.mca-marines.org/leatherneck/faq.asp#Message"&gt;The
Birthday Message&lt;/a&gt; by General John A. Lejeune, 13th Commandant of the Marine Corps&lt;/strong&gt;&lt;/span&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;&lt;font face=Arial color=#222222 size=3&gt;&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial"&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;On
November 1st, 1921, John A. Lejeune, 13th Commandant of the Marine Corps, directed
that a reminder of the honorable service of the Corps be published by every command,
to all Marines throughout the globe, on the birthday of the Corps. Since that day,
Marines have continued to distinguish themselves on many battlefields and foreign
shores, in war and peace. On this birthday of the Corps, therefore, in compliance
with the will of the 13th Commandant, Article 38, United States Marine Corps Manual,
Edition of 1921, is republished as follows: 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Arial color=#222222 size=3&gt;&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial"&gt;"(1)
On November 10, 1775, a Corps of Marines was created by a resolution of the Continental
Congress. Since that date many thousand men have borne the name Marine. In memory
of them it is fitting that we who are Marines should commemorate the birthday of our
Corps by calling to mind the glories of its long and illustrious history.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Arial color=#222222 size=3&gt;&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial"&gt;"(2)
The record of our Corps is one which will bear comparison with that of the most famous
military organizations in the world's history. During 90 of the 146 years of its existence
the Marine Corps has been in action against the Nation's foes. From the Battle of
Trenton to the Argonne, Marines have won foremost honors in war, and in the long era
of tranquility at home, generation after generation of Marines have grown gray in
war in both hemispheres, and in every corner of the seven seas that our country and
its citizens might enjoy peace and security. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Arial color=#222222 size=3&gt;&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial"&gt;"(3)
In every battle and skirmish since the birth of our Corps, Marines have acquitted
themselves with the greatest distinction, winning new honors on each occasion until
the term "Marine" has come to signify all that is highest in military efficiency and
soldierly virtue. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p&gt;
&lt;font face=Arial color=#222222 size=3&gt;&lt;span style="FONT-SIZE: 12pt; COLOR: #222222; FONT-FAMILY: Arial; mso-fareast-font-family: 'Times New Roman'; mso-ansi-language: EN-US; mso-fareast-language: EN-US; mso-bidi-language: AR-SA"&gt;"(4)
This high name of distinction and soldierly repute we who are Marines today have received
from those who preceded us in the Corps. With it we also received from them the eternal
spirit which has animated our Corps from generation to generation and has been the
distinguishing mark of the Marines in every age. So long as that spirit continues
to flourish, Marines will be found equal to every emergency in the future as they
have been in the past, and the men of our Nation will regard us as worthy successors
to the long line of illustrious men who have served as 'Soldiers of the Sea' since
the founding of the Corps." &lt;/span&gt;&lt;/font&gt;&gt;
&lt;/p&gt;
&lt;img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=da813c44-cba8-4043-890b-9037402642b0" /&gt;</content>
  </entry>
  <entry>
    <title>Client/Server Datasnap is a snap..</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/09/25/ClientServerDatasnapIsASnap.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,bd80ba95-23bb-4723-87b7-cc51897949f8.aspx</id>
    <published>2008-09-25T12:29:06.476-07:00</published>
    <updated>2008-09-25T13:00:42.851625-07:00</updated>
    <category term="DataSnap" label="DataSnap" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,DataSnap.aspx" />
    <category term="Delphi" label="Delphi" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Delphi.aspx" />
    <content type="html">&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Making
a Client/Server application using Datasnap is pretty straight forward.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;The
big change over the old DCom design is the connection from client to server, and the
server activation method – simply put there is no auto activation.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You’ll
have to start the server before running the client.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" /&gt;The
old client side TDComConnection is replaced by a TSQLConnection – yes, that’s the
same connection component used from the server (TSqlQuery) to the database.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Let’s
create the server first.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;1.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Create
a new VCL forms application, then add a Server Module (File\New\Other – Delphi Files
page) to the application.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;2.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;From
the Tool Palette \ Datasnap Server – drop a TDSServer, TDSServerClass and TDSTCPServerTransport
on the applications main form.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;3.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;For
both the ServerTransport and the ServerClass, set the Server property to the TDSSserver
component.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;4.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;On
the ServerClass, add an event in for the OnGetClass method.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&amp;nbsp; &lt;/span&gt;In
the event itself you need to assign the PersistentClass variable to the ServerModule
you created in step one.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;You’ll need
to add it to the main forms uses clause first.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;ie.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;PersistentClass
:= TDSServerModule2;&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;5.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;On
your Server Module, drop a TSqlConnection, TSqlQuery and TDatasetProvider component.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Set
the SqlConnection.ConnectionName to your database,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;SqlQuery.SqlConnection
to the SqlConnection, and DatasetProvider.Dataset to the SqlQuery.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Also
add the SqlQuery.Sql to query a table in your database.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l1 level1 lfo1; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;6.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Build
the server&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Now
that we’ve got the server created, lets build the client. 
&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;1.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Create
a new VCL forms application.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;2.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Drop
a TSqlConnection on to the main client form, set the Driver property to DATASNAP.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Assign
params for the following Key|Value combinations:&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;DriverName
| Datasnap,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Hostname | LocalHost,&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Port
| 211.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Note the Port 211 is the default,
however you can reassign the client &amp;amp; server ports to a different value.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Each
Datasnap server must use a different port, running a 2&lt;sup&gt;nd&lt;/sup&gt; datasnap server
that is using the same port of an existing running one will cause a 'Socket already
in use' error message.&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;3.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Add
a TDSProviderConnection to the main form, set the SqlConnection property to the TSqlConnection
on the client form, and set the ServerClassName to the object name of the TDSServerModule
that you created in step 1 of the server (ie.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;TDSServerModule1).&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;4.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;Add
a TClientDataset, TDatasource, and TDBGrid.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp;&lt;/span&gt;Set
the ClientDataset.RemoveServer to the DSProviderConnection, the Datasource.Dataset
to the ClientDataset, and the DBGrid.Datasource to the Datasource.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt 24pt; TEXT-INDENT: -0.25in; mso-list: l0 level1 lfo2; tab-stops: list 24.0pt"&gt;
&lt;font face="Times New Roman" size=2&gt;&lt;span style="FONT-SIZE: 10pt"&gt;&lt;span style="mso-list: Ignore"&gt;&lt;font color=#000000&gt;5.&lt;font face="Times New Roman" size=1&gt;&lt;span style="FONT: 7pt 'Times New Roman'"&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/span&gt;&lt;/font&gt;&lt;/font&gt;&lt;/span&gt;&lt;/span&gt;&lt;/font&gt;&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;At
this point, if you run the server then edit the ClientDataset.ProviderName property,
it should show your DatasetProvider in the drop down list if everything is hooked
up properly.&lt;span style="mso-spacerun: yes"&gt;&amp;nbsp; &lt;/span&gt;Setting the ClientDataset.Active
= True should display the results of your query in the DBGrid.&lt;o:p&gt;&lt;/o:p&gt;
&lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;
&lt;o:p&gt;&amp;nbsp;&lt;/o:p&gt;
&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;font color=#000000&gt;That’s
all there is to the basics of how to connect a client application to the server using
the Datasnap architecture.&amp;nbsp; &lt;/font&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;/span&gt;&lt;/font&gt;&amp;nbsp;
&lt;/p&gt;
&lt;p class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;
&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;Some
good reading on the basics of Datasnap:&lt;/span&gt;&lt;/font&gt;
&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a href="http://dn.codegear.com/article/38682"&gt;DataSnap
2009 Overview&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a href="http://dn.codegear.com/article/38685"&gt;DataSnap
2009 Memory Management&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;div class=MsoNormal style="MARGIN: 0in 0in 0pt"&gt;&lt;font face=Arial color=#000000 size=2&gt;&lt;span style="FONT-SIZE: 10pt; FONT-FAMILY: Arial"&gt;&lt;a href="http://dn.codegear.com/article/38686"&gt;DataSnap
2009 Threading Model&lt;/a&gt;&lt;/span&gt;&lt;/font&gt;
&lt;/div&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=bd80ba95-23bb-4723-87b7-cc51897949f8" /&gt;</content>
  </entry>
  <entry>
    <title>Datasnap in Delphi 2009</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/09/19/DatasnapInDelphi2009.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,6ee64668-a4df-4574-bb49-5be74d4c7d3b.aspx</id>
    <published>2008-09-19T07:25:02.811-07:00</published>
    <updated>2008-09-19T07:25:30.373875-07:00</updated>
    <category term="DataSnap" label="DataSnap" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,DataSnap.aspx" />
    <category term="Delphi" label="Delphi" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Delphi.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Been doing some R&amp;D with the new Delphi 2009 and checking out the new Datasnap
architecture, I came across this gem of a problem.  The TDSServerClass CreateInstance
calls the TDSServerModule create method, but the TDSServerClass DestroyInstance doesn't
call the ServerModule Destroy.  Thus any code put in the destroy isn't called
(like closing the database connection), and the ServerModule is a memory leak. 
I bumped in to this problem by putting something as trivial as an OutputDebugString
into the DestroyInstance event.
</p>
        <p>
Per a comment by Leonel (CodeGear) in the NG's, if there is any code in the TDSServerClass.DestroyInstance,
then the intent is that the developer has to free the ServerModule themself.  
This violates one of the most basic rules of Delphi, as layed out by Danny Thorpe
in his book "Delphi Component Design", that having or not having code in
an event by itself alters the component.  The real kicker of this is that the
help on the TDSServerClass methods is pretty sparse, and no where does it detail this
component changing 'feature'.
</p>
        <p>
The work around to this is either a) don't put any code in the TDSServerClass.DestroyInstances,
or if you must then use DSDestroyEventObject.ServerClassInstance to reference the
ServerModule and destroy it.
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=6ee64668-a4df-4574-bb49-5be74d4c7d3b" />
      </div>
    </content>
  </entry>
  <entry>
    <title>On Brett Favre retiring</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/03/04/OnBrettFavreRetiring.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,82445be8-fdb8-43f6-be25-2f60bce68e28.aspx</id>
    <published>2008-03-04T08:45:19.598-08:00</published>
    <updated>2008-03-04T09:04:27.23925-08:00</updated>
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
          <a href="http://www.distribucon.com/blog">Dan </a>and I have been going back and forth
all morning regarding the news that <a href="http://sports.espn.go.com/nfl/news/story?id=3276034">Brett
is retiring</a>, and I think I finally convinced him that it's the perfect move for
Brett to make.  
</p>
        <p>
Yes, it sucks for us fans.  Yes, it is the end of an era.  Yes, Brett will
be missed.
</p>
        <p>
But think on this for a minute..   For the past 4 years we've been hearing
the news casters, sports commentators and talking heads on the radio saying how Brett
doesn't have it any more and how he should retire.  Last season Brett came
out looking as good as he ever has, he lead the Pack to a 13-3 season when everyone
was expecting them to go 4-12.  They made it to the NFC Championship.  
People started saying "he's GOT to come back for another season, if only they get
a &lt;some position&gt; they'll win the Superbowl".
</p>
        <p>
Brett pulled a Jerry Seinfeld.  He walked out on top, leaving the audience wanting
more.  He pulled a T-Bone (George Castanza) - "All right, that's it for me. You've
been great.  Good night everybody!". 
</p>
        <p>
The legend will live on for years.. 20 years from now we'll all be reminiscing about
the good old days, arguing how the Pack would have won the Superbowl in 2008 if only
Brett would have stayed for 1 more year.  We'll be old men in the nursing home,
gumming our oatmeal and remembering fondly the Brett Favre era, dreaming about what
might have been, what could have been.. if only.. 
</p>
        <p>
Take care Brett - best of luck to you and the family. You'll be loved, missed, and
in our conversations of "the good old days" for decades.
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=82445be8-fdb8-43f6-be25-2f60bce68e28" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Team in Training 2008</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/02/24/TeamInTraining2008.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,f3d34e09-d118-409c-aa93-3c78450ee739.aspx</id>
    <published>2008-02-24T12:21:30.544-08:00</published>
    <updated>2008-02-24T12:21:30.544-08:00</updated>
    <category term="Random" label="Random" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Random.aspx" />
    <category term="TeamInTraining" label="TeamInTraining" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,TeamInTraining.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I've signed up to do another <a href="http://www.teamintraining.org/">Team in Training</a> event
this year, I'll be returning to the Milwaukee Chapter cycling team for another go
at Americas Most Beautiful Bike ride.  I've been hemming and hawing about it
for a couple weeks now, trying to make up my mind on the committment of it, it does
tend to take up a lot of your free time for 4 months. And the commitment to raising
the funds can be a bit of a gut check. :)
</p>
        <p>
What finally helped me make my decision was at the bike maintenance seminar the coaches
put on, introductions were being made and people were talking about their reasons
for doing it. There are some new members for the team, and of them 1 is a survivor
(believe that makes 4 for our team), 1 lost a family member to leukemia, and another
one has a brother that was diagnosed when he was 9, he's now 13.  That's why
we do this, thats what this is all about - making a difference for the survivors
and for those that have lost loved ones due to a blood born cancer.  It reminded
me of the friends, coworkers and others I talked to last year who had been affected
by one of them, and of the things they shared with me.  I recalled the stories
I heard at the bike ride last year, the people who were there cheering us on, and
knowing that I was helping to make a difference.
</p>
        <p>
The <a href="http://www.leukemia-lymphoma.org/">Leukemia and Lymphoma society</a> has
made a real difference in the battle against these cancers. 2008 marks their 20th
anniverary, in those 20 years 360,000 voluneteers have raised over $850 million to
be used for <a href="http://www.leukemia-lymphoma.org/all_page?item_id=12358">education,
research, and helping patients</a> and their families.  In 2007 alone they contributed
$66.5 million to support more than 396 researchers in 15 different countries. 
And it's all through tax deductible donations from people like you - they receive
no federal funding.  They've <a href="http://www.leukemia-lymphoma.org/all_page?item_id=221384">made
real progress</a>, but there is more work to be done. 
</p>
        <p>
If you have any questions, please feel free to <a href="mailto:rwerning@wi.rr.com">email
me</a>.  If you wish to make an online donation, you can <a href="http://www.active.com/donate/tntwi/rwerning08">click
on</a> the Team in Training image in the top right corner.  On behalf of the
Leukemia &amp; Lymphoma Society, I thank you.  
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=f3d34e09-d118-409c-aa93-3c78450ee739" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Compacting a VirtualPC drive</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/02/11/CompactingAVirtualPCDrive.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,3d5a8dce-24e7-4f60-b556-9c1e4b76f0eb.aspx</id>
    <published>2008-02-10T20:34:40.226-08:00</published>
    <updated>2008-02-10T20:34:40.226-08:00</updated>
    <category term="utilities" label="utilities" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,utilities.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Compacting a VirtualPC harddrive seems pretty straight forward the first time you
do it.  Make sure the drive isn't in use, open up the VPC console, File | Virtual
Disk Wizard | Edit Existing Drive | Select the drive | Compact it.   However
after running you will probably find that its either stayed the same or increased
in size! 
</p>
        <p>
If you read the wizard messages (who really does that though?), you'll see that they
state you need to zero out the free space first.  A quick search on MSDN shows
a KB article the describes how to <a href="http://support.microsoft.com/default.aspx?scid=kb;en-us;888760">Prepare
a VPC hard drive</a>.
</p>
        <p>
To properly compact a VPC instance, you'll want to follow these steps.  For reference
I'm using VirtualPC 2007.
</p>
        <ol>
          <li>
Start the VPC instance and defrag the drive to start off.</li>
          <li>
Next click on the CD option on the menu for the VPC instance, select Capture
ISO image, navigate to the VPC install directory (program files\Microsoft Virtual
PC), and in the Virtual Machine Additions folder there is "Virtual Disk Precompactor.iso". 
Open that and it should auto run, compacting the drive(s).</li>
          <li>
When its done, select the CD menu option again and Release (unmount) the ISO.</li>
          <li>
Shut down the Virtual PC instance.</li>
          <li>
In the VPC console, File | Virtual PC wizard | Select the drive you just precompacted
| Compact it | Replace or Save original as you desire, and let it run.</li>
        </ol>
        <p>
Pretty easy once you have the steps, and it can make a big difference in the size
of the virtual drive if you're using dynamic drives instead of a fixed sized one.
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=3d5a8dce-24e7-4f60-b556-9c1e4b76f0eb" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Migrating a Laptop to VirtualPC</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/02/10/MigratingALaptopToVirtualPC.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,85f61b19-b07e-4a2f-a423-538766cd38ce.aspx</id>
    <published>2008-02-10T11:49:55.647-08:00</published>
    <updated>2008-02-10T16:07:25.351-08:00</updated>
    <category term="utilities" label="utilities" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,utilities.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
I wanted to copy an existing laptop to a VirtualPC instance.  It's old and had
a number of issues (RAM, Win2000, CPU speed, 20gig HD, USB 1.0, to name a few), but
I still need to use some of the development tools on the laptop.  Instead of
going thru the hassle of trying to find all of the license keys for the software on
this laptop (not sure if we even could), I thought the easiest route would be to make
a VPC instance and use that on my Dell desktop that has plenty of RAM and CPU.  
</p>
        <p>
We use VPC for archiving build configurations at <a href="http://www.tiptech.com">TIP</a> extensively
and it works like a charm. When you have a build environment that you need to save
in case you need to patch old source code, instead trying to make the old source work
in the new enviroment (new IDE version, updated 3rd party controls, etc), just create
a VPC image with that build configuration.  Then if you need to patch any code,
its a breeze - start the VPC instance and your off working with a known environment.
</p>
        <p>
I've never tried to clone a whole hard drive before. The research I did lead me to
believe that <a href="http://www.symantec.com/norton/products/overview.jsp?pcid=br&amp;pvid=ghost12">Ghost</a> was
the way to go.  However I quickly ran into some problems going down that route
- first off you can't be using the drive when you ghost it.  I wasn't able to
create a boot disk as the laptop doesn't have a floppy drive, and I ran into issues
trying to create a bootable USB or CD with <a href="http://www.nu2.nu/bootdisk/cdrom/">Barts
Bootable CD</a> with <a href="http://www.nu2.nu/bootdisk/network/">Networking
enabled</a>.   After several hours and much frustration, I came across a
newsgroup post that lead me down the correct path, once again I was making it <a href="http://www.youcantwin.com/dasblogce/2007/11/12/RepartitioningOfVirtualPCHardDrive.aspx">harder
than it needed to be</a>.  Here's the easy and cheap (ie. Free) steps I used. 
I'm not going to detail the steps as the 2 converters really were quite simple to
use.
</p>
        <ol>
          <li>
Attach my external 500gig USB drive to the old laptop so I had a place to put the
image. 
</li>
          <li>
Convert the existing drive to virtual with <a href="http://www.vmware.com/products/converter/">VMWare
Converter</a> (free version worked fine). 
</li>
          <li>
Convert the VMWare image to VPC with <a href="http://vmtoolkit.com/files/folders/converters/entry8.aspx">VMToolkit
converter</a> (free). 
</li>
          <li>
Copy the image to my desktop system, and use VPC to crete a new virtual machine using
the new VHD drive. 
</li>
          <li>
Boot up the image and fix the PNP warnings for new hardware that came up.  I
know some people run into problems with blue screens of death and have to use their
Windows Install disks to repair the image, but I didn't have that problem.  It
booted just fine, and after a couple driver changes &amp; reboots I was off and
running.</li>
        </ol>
        <p>
The only real hassle with the process is that the laptop only supported USB 1.0, so
copying 20gig took a LOOONG time. I started the process before I went to bed and it
was finished when I got up.  I did run into one problem while running VMWare
Converter, it gave me a warning that the Registry wasn't large enough and I had to
restart the process.  It allowed 45mb, so I bumped it to 120mb just to be sure
there was enough space so I didn't have to restart a 2nd time.
</p>
        <br />
The next step is to clean up the new VPC and remove the unused programs, then compress
the VHD down from its 20gig size.<br /><img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=85f61b19-b07e-4a2f-a423-538766cd38ce" /></div>
    </content>
  </entry>
  <entry>
    <title>Home network security tip</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2008/01/25/HomeNetworkSecurityTip.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,4fb0231a-998c-45fa-8a17-676f1c228b96.aspx</id>
    <published>2008-01-25T11:58:15.826-08:00</published>
    <updated>2008-01-29T18:23:26.1065-08:00</updated>
    <category term="utilities" label="utilities" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,utilities.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
A <a href="http://www.symantec.com/enterprise/security_response/weblog/2008/01/driveby_pharming_in_the_wild.html">recent
article by Symantec</a> warns of a pharming attack (redirecting your web traffic to
another, fake website) that went from the "theoretical" to the "It’s being done now"
category. For those that have a home network set up and have their own router, you
should pay close attention to this. The goal of redirecting your traffic is to allow
them to capture your username, password &amp; account information for sensitive accounts
(ie. Banks, Paypal, CreditCards, etc). The attack uses security flaws in some routers,
or a lack of proper security measures by others, and changes your router settings.
The change could occur from either an HTML based email, or by visiting a compromised
website.  
</p>
        <p>
Most people don’t change the default password on their routers. I know that by default
Linksys routers have no username and a default password of Admin. One of the easiest
ways to beefe up security and prevent these sort of attacks is to change these default
settings. Assign / Change the username, and change the password. 
</p>
        <ul>
          <li>
Username: don’t use the same name as you log into the computer with, use something
unique. 
</li>
          <li>
Password: never use a simple to guess word, like one you would find in a dictionary.
Mix letters, numbers and symbols. 
</li>
        </ul>
        <p>
The greater the variety, the harder it is to crack. There is a specific model of routers
that doesn’t require any username or password to change the router settings, but I
haven’t been able to determine that information yet. This would be a huge security
risk, so if I find out what it is I’ll pass it along. There are some really good general
security suggestions in the <a href="http://www.symantec.com/enterprise/security_response/weblog/2008/01/driveby_pharming_in_the_wild.html">Symantec
article</a>, well worth reading. 
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=4fb0231a-998c-45fa-8a17-676f1c228b96" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Rebasing Delphi DLL's</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2007/12/08/RebasingDelphiDLLs.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,1956d49b-4ba9-4b5a-b232-d959dcf437fe.aspx</id>
    <published>2007-12-07T20:30:07.014-08:00</published>
    <updated>2007-12-07T20:31:46.310875-08:00</updated>
    <category term="Delphi" label="Delphi" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Delphi.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
Ok, I must admit I'm a Johnny-come-lately to the whole rebasing thing, it's been covered <a href="http://www.ddj.com/windows/184416272;jsessionid=24R0W45KQRLLOQSNDLPCKHSCJUNN2JVN?_requestid=27912">over</a> and <a href="http://www.codeproject.com/KB/DLL/RebaseDll.aspx">over</a>,
with the <a href="http://msdn2.microsoft.com/en-us/library/ms810432.aspx">need for
it</a> being stressed by all.  And yet, here I am after 10+ years of maintaining
the Win32 dlls we use without having done it.  I'm back to beating my head on
my <a href="http://www.youcantwin.com/dasblogce/2007/08/20/DLLHellPart2.aspx">DLL
hell</a> issue (more updates on that later), and one of the things I finally decided
to take care of was getting the DLL's rebased.
</p>
        <p>
It's one of those topics that seems like it'd be difficult. I did a bunch of research
trying to figure out the best way to decide on starting addresses (seemed hard to
find), and then determine how much spare memory I should reserve for future growth,
calculating starting addresses backwards, fighting with the Delphi 2007 compile
options because the base address didn't seem to be working, and then I read how
simple this really is.  No need for all the manual gyrations &amp; calculations
I was trying to do - I was making it far tougher than it needs to be.
</p>
        <p>
Because this topic has been covered so many times by so many that are better writers
than I am, I'm not going to bother with the whys of it.  But here's the
short version of it how to do it.  Get your hands on a copy of Rebase.exe from
Microsoft, it comes with VS so you probably already have it.   List your
dll's, give an output file for the logs and a starting address, and you're done. 
</p>
        <pre>&gt;rebase.exe -b 0x68000000 -d -C coffbase.log -l rebase.log -v mydll1.dll mydll2.dll mydll3.dll</pre>
        <pre>Where:<br />
-b = Initial base address (MS recommends starting at 0x68000000)<br />
-d = Top down rebase (MS recommended practice)<br />
-C = Output coff_base.txt file<br />
-l = write image bases to log file<br />
-v = verbose output</pre>
        <p>
It's that simple, there was no calculations needed, Rebase.exe handles them all. 
I created a simple .bat file to run the rebase command.  I just execute
the .bat after I recompile the exe's and bingo, all done.  Yes, it really
is that simple.  Gonna add this step to our <a href="http://www.finalbuilder.com/finalbuilder.aspx">FinalBuilder</a> build
process now, it's so trivial I'm embarrased to admit I put off doing this for years.
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=1956d49b-4ba9-4b5a-b232-d959dcf437fe" />
      </div>
    </content>
  </entry>
  <entry>
    <title>Upgrade to dasBlog 2.0 (cont)</title>
    <link rel="alternate" type="text/html" href="http://www.youcantwin.com/dasblogce/2007/11/14/UpgradeToDasBlog20Cont.aspx" />
    <id>http://www.youcantwin.com/dasblogce/PermaLink,guid,7c00738b-eac4-494b-b862-1ba15d72fd69.aspx</id>
    <published>2007-11-14T11:07:13.921-08:00</published>
    <updated>2007-11-14T11:22:13.8125-08:00</updated>
    <category term="Random" label="Random" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,Random.aspx" />
    <category term="utilities" label="utilities" scheme="http://www.youcantwin.com/dasblogce/CategoryView,category,utilities.aspx" />
    <content type="xhtml">
      <div xmlns="http://www.w3.org/1999/xhtml">
        <p>
As I mentioned a few days ago, I just updated to <a href="http://www.dasblog.info">dasBlog
2.0</a>. The docs for the upgrade to dasBlog 2.0 don't appear to be up to date, so
to help out any one who might be having issues with it (*cough*<a href="http://www.distribucon.com/blog">dan</a>*cough*),
here's a rundown of the steps I did to upgrade.  I use <a href="http://www.WebHost4Life.com/">Webhost4life</a> as
a hosting service and had a previous working install of dasBlog 1.9, so the steps
are targeted towards that. 
</p>
        <ol>
          <li>
            <a href="http://sourceforge.net/project/showfiles.php?group_id=127624">Download</a> the
latest version of dasBlog 2.0 
</li>
          <li>
Install it on your local pc. 
</li>
          <li>
Using something like <a href="http://www.smartftp.com">SmartFTP</a>, copy the xml
files in your remote dasblog\content folder to the local directory. 
</li>
          <li>
Time for a backup of your contents folder, if you don't have one.. just in case! 
</li>
          <li>
Run the content upgrade app : dasblog\upgradedasblog\DasBlogUpgrader.exe 
</li>
          <li>
Copy the dasblog\SiteConfig files to a temp local folder and using something like <a href="http://www.scootersoftware.com/">BeyondCompare</a> merge
in the few changes that you had made in your old install into the new siteSecurity.config
and site.config files. 
</li>
          <li>
Copy all of the files in your local dasBlog install up to your host server.  
This is everything in the root and subdirectories, there are changes required in the
bin, datepicker\themes, etc.  There may be folders you can safely ignore, I just
did them all. 
</li>
          <li>
Now is a good time to clean up all of the old logs in your remote \logs folder (see
my comments <a href="http://www.youcantwin.com/dasblogce/2007/11/10/dasBlog20Upgrade.aspx">here</a>). 
</li>
          <li>
Since I copied everything from the local install to the server, and SmartFTP keeps
the modification date the same, I deleted everything in the root and sub folders (excluding
content !) that had a date prior to 8/14/2007.  Necessary?  Not sure.. but
if they aren't needed why not get rid of them? 
</li>
          <li>
Log into your WebHost4Life account.  Select "Site Admin" from the top menu, then
"Set .NET App" from the left pane.   Change the root version to .net 2.0.</li>
        </ol>
        <p>
If you had a previously working install of dasBlog 2.0, this is all it should take
to do the upgrade.  If I missed something, leave a comment and let me know.
</p>
        <img width="0" height="0" src="http://www.youcantwin.com/dasblogce/aggbug.ashx?id=7c00738b-eac4-494b-b862-1ba15d72fd69" />
      </div>
    </content>
  </entry>
</feed>