Anyway, guys, thanks for one hell of a good job!
4 Years and Going.. Thanks!
4 Years and Going.. Thanks!
Just celebrated the 4th year anniversary of kBilling. Thanks to everyone here that has helped me over the years and a special thanks to the PB team. I would say that the thousands of people that have purchased over the years would thank you guys too, if they knew what PureBasic was 
Anyway, guys, thanks for one hell of a good job!
Anyway, guys, thanks for one hell of a good job!
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
- Rook Zimbabwe
- Addict

- Posts: 4322
- Joined: Tue Jan 02, 2007 8:16 pm
- Location: Cypress TX
- Contact:
No fame and very little fortune, but thanks! I love my job!
Best of luck to you!
Best of luck to you!
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
And it might start using esgrid in the near future 
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
- Rook Zimbabwe
- Addict

- Posts: 4322
- Joined: Tue Jan 02, 2007 8:16 pm
- Location: Cypress TX
- Contact:
I used SQLite as the database and am currently (as in *right* now) making a version to work with PostgreSQL.
* I switched from using the native SQLite commands to using the ODBC subsystem within PB. It's a blessing and a curse as until 4.1 the ODBC functions didn't work when you enabled Unicode. ODBC is slower but it opens you up to a much longer list of supported databases with very little or no porting the actual data access routines.
This function might make your DB life easier, too. Pass it a database handle and text field name and it will return you the result as a string every time. The built-in ODBC data access functions are pretty hard to use since they are index based.
* I switched from using the native SQLite commands to using the ODBC subsystem within PB. It's a blessing and a curse as until 4.1 the ODBC functions didn't work when you enabled Unicode. ODBC is slower but it opens you up to a much longer list of supported databases with very little or no porting the actual data access routines.
This function might make your DB life easier, too. Pass it a database handle and text field name and it will return you the result as a string every time. The built-in ODBC data access functions are pretty hard to use since they are index based.
Procedure.s ReadDatabaseField(DatabaseHandle.l,FieldName.s)
result.s = ""
NumColumns.l = DatabaseColumns(DatabaseHandle)
For x = 0 To NumColumns-1
If DatabaseColumnName(DatabaseHandle, x) = FieldName
;1: Numeric format (a Long (.l) in PureBasic)
;2: string format (a String (.s) in PureBasic)
;3: Numeric float format (a Float (.f) in PureBasic)
;4: Numeric double format (a Double (.d) in PureBasic)
;5: Numeric quad format (a Quad (.q) in PureBasic)
type.l = DatabaseColumnType(DatabaseHandle,x)
Select type
Case 1
result.s = Str(GetDatabaseLong(DatabaseHandle,x))
Case 2
result.s = GetDatabaseString(DatabaseHandle,x)
Case 3
result.s = StrF(GetDatabaseFloat(DatabaseHandle,x))
Case 4
result.s = StrD(GetDatabaseDouble(DatabaseHandle,x))
Case 5
result.s = StrQ(GetDatabaseQuad(DatabaseHandle,x))
Default
result.s = GetDatabaseString(DatabaseHandle,x)
EndSelect
EndIf
Next
result.s = Trim(result)
ProcedureReturn result
EndProcedure
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
-Mitchell
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net
Check out kBilling for all your billing software needs!
http://www.k-billing.com
Code Signing / Authenticode Certificates (Get rid of those Unknown Publisher warnings!)
http://codesigning.ksoftware.net

