Hoi,
Ooit heb ik voor eigen gebruik 2 simpele tooltjes ontwikkeld:
DatabaseQuery en DatabaseToCsv.
Ze laten toe op een snelle manier SQL queries te doen, zonder veel toeters en bellen weliswaar...
De toolnamen zeggen al heel wat, maar toch een beetje uitleg:
Beide tools kunnen een beperkt aantal soorten DB's aan:
- MsAccess
- MsExcel
- MsSql
- text (CSV)
- MySql
Met beide tools kunnen SQL queries naar de Database gestuurd worden.
DatabaseQuery toont dan het resultaat in een stringgrid, DatabaseToCsv maakt van het resultaat een CSV file.
Beiden kunnen tot 30 verschillende queries aan.
DatabaseToCsv kan ook werken in batch mode (op te starten in bv een batchfile in de directory waar de query definities staan door toevoegen van "/a" aan het command).
Iets extra voor beide tools:
- er kunnen parameters gebruikt worden bv:
De namen van de parameters in de SQL query worden gewoon vervangen door wat na het "=" teken staat (gewone tekstsubstitutie).Code::Par1 = "blabla" .... Select .. where xx = :Par1 ...
- er kunnen files "geincluded" worden, bv:
Parameter namen beginnen altijd met ":" en moeten in kolom 1 beginnen,Code:Select ... where xxxx in ( $I names.txt ) ...
includestatements beginnen met "$I " en moeten ook in kolom 1 beginnen.
Bovendien is het in DatabaseToCsv mogelijk ná het uitvoeren van de query een aantal "berekende" kolommen toe te voegen, zie de uitleg daarvan in "NLDRcsCsv".
http://www.nldelphi.com/Forum/showthread.php?t=20074
Voorbeeld van een querydefinitie in DatabaseToCsv:
Let op de "XXXX=" regels die de verschillende velden definieren. "NAME" is de naam die de csv file zal krijgen (extensie niet meegeven, is altijd "txt").Code:NAME= DataFiles\Test1 Access DBTYPE= MSACCESS SERVER= USER= PASSWORD= DATABASE= Metrics.mdb CALCULATEDFIELDS= CalcFieldA = (Count1 - 1.25) / Area1 CalcFieldB = 100 + (Count2 % CountTotal) CalcFieldC = 20 * (CalcFieldA + CalcFieldB) QUERY= select * from [MeasurementsA] where Method = "Inspection"
De CSV files die beide tools gebruiken (DatabaseQuery kan ook een queryresult als CSV file saven) gebruiken altijd als separator de "," (dus echt "comma" separated), de "." als decimal separator en "yyyy-mm-dd" als datum formaat. Even oppassen dus. Er wordt ook een Schema.ini file aangemaakt in de directory waar de csv file staat. Dat laat toe ook die directory als (text) database te gebruiken.
De documentatie van "DatabaseToCsv" is nu ook toegevoegd in de link hieronder.
Werken met "DatabaseQuery" zou duidelijk moeten zijn met de uitleg in deze thread.
Veel plezier!
De tools zijn te vinden op:
ftp://ftp.nldelphi.com/public/OpenSo.../NLDDanyUtils/
Bookmarks