Page 1 of 1
4 Years and Going.. Thanks!
Posted: Tue Dec 11, 2007 7:45 pm
by Karbon
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!
Posted: Tue Dec 11, 2007 10:08 pm
by Rook Zimbabwe
Way to go Karbon! I wish you continued success, fortun and fame... and may some of that rub off on me!!!

Posted: Tue Dec 11, 2007 10:16 pm
by Karbon
No fame and very little fortune, but thanks! I love my job!
Best of luck to you!
Posted: Tue Dec 11, 2007 11:02 pm
by srod
Aye, kBilling rocks!

Posted: Tue Dec 11, 2007 11:03 pm
by Karbon
And it might start using esgrid in the near future

Posted: Tue Dec 11, 2007 11:08 pm
by Rook Zimbabwe
How did you manager the multiple user/network thingy... thats what is killing my POS application at the moment?
Posted: Tue Dec 11, 2007 11:10 pm
by Karbon
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.
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
Posted: Tue Dec 11, 2007 11:47 pm
by Dare
Congrats!
Posted: Wed Dec 12, 2007 1:28 am
by pdwyer
What tool did you use for interface design?
Posted: Wed Dec 12, 2007 1:42 am
by Karbon