Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

Work in Progress / New n improved SQLITE plugin

Author
Message
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 00:59 Edited at: 9th Feb 2014 01:40
Just one more thing: the command Sqlite Copy Table does not work for me. It gives me return 0, and I cannot find copy when browsing database either (in external application) in table list nor sqlite_master.

But note that it is not so important since I don't plan to use that functionality, however just thought you should know.



Edit:
Also because of how your help file was written at command Sqlite Table As Printstring$ it made me scratch my head:


IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 02:35 Edited at: 9th Feb 2014 02:36
@ Lukas W,

Will look in to the copy table command.... thanks for flagging it...

What are you getting at wih the sqlite table as printstring$ command - ?

From memory it should output the entire table as a single string with the column names separated by * and then then the columns per row, row by row, all separated by strings?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 02:44
Yep it will store entire structure of a table inside one string:


However, in the .txt help file for this command it say output should look like this:


And so I was wondering which one is the correct output, the one dbpro gives me or the one you wrote in help file?

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 03:02
@ Lukas W,

Ah, I see. Tell you what, what form of output would YOU prefer...?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 03:16
Well personally I prefer something like this:

But if not possible, then the one from your .txt help file is easier to read compared to current dbpro output

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 10:01
@ Lukas W,

I see what you mean. Leave it with me (for this and similar commands) and I'll see if I can't make a version 0.9a today or tomorrow....

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 10:20 Edited at: 9th Feb 2014 10:48
Ok, great!

I found another problem with command Sqlite Make Table From SQL Query Records( database_id, table_name$ )
It is not able to compile because dll expect a table_name = INTEGER

command Sqlite Get Table Name$ return only "" (NULL) string.
And put table name$ command inside For-Next loop cause application crash


IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 15:40 Edited at: 9th Feb 2014 15:47
@ Lukas W,

Think I've sorted the the SQLITE MAKE TABLE FROM SQL QUERY RECORDS problem and I think I've sorted (but haven't tested) the SQLITE TABLE AS PRINTSTRING$ and the RECORDSET equivalent.

Now looking at the SQLITE GET TABLE NAME$ function and the COPY TABLE functions.....

See below, attached and first post.

[edit]

In your code posting above does the SQLITE TABLE COUNT function work correctly?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 16:14
@ Lukas W,

Wouldn't mind your response to the above query on SQLITE TABLE COUNT still but think I may have sorted the SQLITE GET TABLE NAME$ function errors...?

See below and attached and in first post.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 18:08 Edited at: 9th Feb 2014 18:12
SQLITE MAKE TABLE FROM SQL QUERY RECORDS Still does not work, or can you see if my code is wrong?


SQLITE TABLE AS PRINTSTRING$ is now easier to read, but there are no * symbols or - symbols at all. Anyway like it is now is better than before (at least in my opinion).

SQLITE TABLE COUNT is working just fine, I create 2 tables and it tells me count=2.

SQLITE GET TABLE NAME$ not working still (gives NULL "" string). I can write this command 2 times in a row (don't need to be for-next loop) and application will crash anyway

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Feb 2014 18:23 Edited at: 9th Feb 2014 18:23
@ Lukas W,

Darn it... I will review the code again tomorrow.

Looking at your SQL to insert data in to tables, you have Salary as TEXT but you are inserting a number? If you put in the number within ' ' does that make any difference? Or set up Salary as an INTEGER...?

The make table from query thing looks wrong.... you need to create tableC using an UPDATE function not a BEGIN SQL QUERY one... then the BEGIN SQL QUERY function sql would something like 'SELECT * FROM tableC'. Then the command to make the table from the resultant recordset would be result = Sqlite MAke Table From Sql Query Records( 1, "NewTableName" ) ie. don't use tableC again - you have to allot a new table name...? Let me know what happens then...

Can you let me know what kind of string output you now get with SQLITE TABLE AS PRINTSTRING$ ?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Feb 2014 19:00 Edited at: 9th Feb 2014 19:03
That Sqlite MAke Table From Sql Query Records works now, it was just my mistake in coding:


But it has some problems like
sql$ = "SELECT * FROM tableA, tableB WHERE JobCode LIKE '%TA%';"
does not work, but
sql$ = "SELECT * FROM tableA WHERE JobCode LIKE '%TA%';"
works. So can only grab data from 1 table

SQLITE TABLE AS PRINTSTRING$ gives an output like this:

Which is easy on the eyes, and quick to read - it is better than previous.

(edit: fixed formatting on this post, it was difficult to read >.<

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 14th Feb 2014 22:53 Edited at: 15th Feb 2014 09:39
@ Lukas W,

Sorry about delay in getting back and thank you for persevering...

SQLITE GET TABLE NAME$ should now work (see attached, top posting and below). Or at least I hope so.

Annoying that SQLITE TABLE AS PRINTSTRING$ works but not quite how I wanted...

[edit]

For life of me, cannot see why that SQLITE statement selecting from two tables does not work...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 15th Feb 2014 10:57
Sqlite get Table Name$ did not work for me still
However, it is easy to work around and use recordset instead:


IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 15th Feb 2014 11:32
Darn it! Back to the drawing board....

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
mr_d
DBPro Tool Maker
17
Years of Service
User Offline
Joined: 26th Mar 2007
Location: Somewhere In Australia
Posted: 15th Feb 2014 14:58 Edited at: 15th Feb 2014 15:02
Hi Duffer, I just wanted to poke my head into this thread to say that I believe that, in my opinion, this plug-in of yours will probably end up being one of the most useful and most used in the future (once you've ironed out all the bugs).
I haven't even started any project that makes use of it yet, but am sure that I will do so some time in the near to distant future; so I can only ask that you keep up the good work and not think that your efforts are being wasted with the development of this plug-in.
That's all for now, but hopefully I'll have some useful feedback for you soon. Have a good one. Cheers.

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 15th Feb 2014 15:07
@ mr_d,

Many thanks - appreciated.

I'll keep at it. Feedback on commands (* see all useful feedback from Lukas W above) greatly appreciated - even when I can't seem to solve a basic bug...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 17th Feb 2014 22:14 Edited at: 17th Feb 2014 22:15
Never say die, that's what I say.

So, version 0.9d.

Hopefully I have now finally fixed SQLITE GET TABLE NAME$.

In addition, and because I was feeling daft, I also created a whole new raft of functions and commands allowing you to create a SQLITE unique Array from either a Table or a SQL query Recordset and then also turn that in to a new table, interrogate it if you like, or export it to a csv file as well.

Anyway, 18 new functions or commands - so a total now of 121 functions/commands and that's not including the functions or commands with optional additional parameters...

See below and attached and in first posting.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 18th Feb 2014 16:41
Great work!

I can verify these commands now works finally:
Sqlite Copy Table
Sqlite Get Table Name$

Will look into the new commands when I have more time

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 18th Feb 2014 18:15
@ Lukas W,

Thanks. Going to give the plugin business a well-deserved rest now for a while unless you or another coder spots a big bug for me to crush...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 2nd Mar 2014 17:35 Edited at: 2nd Mar 2014 18:11
What could possibly be causing this error?


Row has cell \"Icon\" as TEXT


I set \"Icon\" to contain text: glove1.png
I read using recordset, and retrieve the data for cell \"Icon\" like this:


I store in variable:
myVar$ = Sqlite Record Current Row String$( 1, 3 )
Application works

I store in array:
MyArray$(index) = Sqlite Record Current Row String$( 1, 3 )
App crash

So I try to set different text on \"Icon\" cell:
I set \"Icon\" to contain different text: pupleglove.png
I read again using recordset and store in variable
myVar$ = Sqlite...$(1, 3)
App crash

I store again in array:
MyArray$(index) = Sqlite...$(1, 3)
App crash

I don\'t understand

copy code from my application:


Edit:
I deleted database and generated a new one. Using that it no longer cause these weird crashes

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 2nd Mar 2014 18:40
I have absolutely no idea - although I am greatly relieved that your new database works with the above code...

Does your new database work with code directly in to arrays?

Until I read your code, I was going to point out that you can't read the same column in a recordset row twice or the column before the one read unless you move to the previous row and back to that same row and start in from the first column again - something about SQLITE - but don't think your code would break that rule.

So is it now working, and with arrays, now that you are accessing a fresh database?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 2nd Mar 2014 19:06
Yes that fresh database work flawlessly. I suspect that maybe editing queries using 3rd party tool makes a confusion between file structure or something. As long as I only edit directly from DBPro (using your dll) I hope there should be no problems.

IS that a game, a program, or 3 year old drawing.
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 8th Mar 2014 21:41 Edited at: 8th Mar 2014 23:52
I like this Sqlite Make Array From Table command, very nice addition.

Anyway, I again have this problem with random crash even though this time I have not used any 3rd party application to view or edit database.

From what I can understand there seems to be some problem with reading strings.

Sqlite Array Get String From Cell$
Sqlite Record Current Row String$

Both these commands cause application crash when put inside (big)for-next loops when there are more than one.

For example this does not crash:
For x = 1 To rows
data$ = sqlite record current row string$( x, 1 )
n=sqlite next record row(1)
Next x

However, this will crash:
For x = 1 To rows
data$ = sqlite record current row string$( x, 1 )
data$ = sqlite record current row string$( x, 2 )
n=sqlite next record row(1)
Next x

For some reason this does only seem to crash when table is bigger than 11 rows (12+)

Edit:
here is example code that should initiate a crash to demonstrate:


IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Mar 2014 12:31 Edited at: 9th Mar 2014 12:42
@ Lukas W,

I will work on this today for you.

Can you attempt some other variants.

Try say columns 2 and 3 and then next row, try previous row then a column.

Is it always where you try and lift two columns or more from the same row before moving up or down a row?

I can think of a work around jumping the whole thing up and and down rows before you go to the next command if I cannot do the proper solve.

But that would slow things down somewhat.

Is this also the same with the array commands where you're getting column 1 and then 2 in a row?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Mar 2014 13:00 Edited at: 9th Mar 2014 13:28
@ LUkas W,

err - try this build...

[edit]

seems ok to run through all strings in one record row but then spoils at next record row after getting first integer - on your code...?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Mar 2014 13:40
Using example code I posted above, for me it still crashes when reading string from record.

It's also difficult to say exactly why it crashes since there is no error message, just "DBPro application has stopped working".

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Mar 2014 14:30
I agree - with the latest build attached above, I get to the second in the for next loop - but why then would it crash? It seems it is something far more fundamental.

Is there a similar error with the Array (get a string from column) equivalent as well?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 9th Mar 2014 15:21
In this example only Array works, but in my application it crashes as well. Not really sure why it does not crash in this example

(remove ` symbol to run a function call)


IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Mar 2014 16:18 Edited at: 9th Mar 2014 16:37
Interesting - why do the Array functions (with strings) work but not the others? (my latest build of the plugin attached here again)

Do / Would the others work if you were just pulling integers from a table?

(I am starting to wonder whether ending a function name with "String" is what's fouling it (bizarrely, and for reasons I cannot fathom...)

[edit]

the array commands work fine, bizarrely - at least that's something

[edit]

try my very latest build above it goes through one loop and then the first integer on your code on recordset - before crashing

[edit]

the same goes for the 'command' ones - it goes through one loop and then crashes...

[edit]

ok, using latest build, I've established it's just the 'recordset' and 'table' (command) string functions that are mucking it up - change everything to grabbing integers and then the code works fine - so it is just those two string commands....

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 9th Mar 2014 17:31
Still v stuck on this - sorry - so frustrating - will try again later

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 9th Mar 2014 19:32
Good luck with it; don't worry I am sure the root cause of the problem will be found.

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 10th Mar 2014 17:47 Edited at: 10th Mar 2014 18:14
OK - v0.9f attached - trying to sort recurring faults with functions returning strings...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 10th Mar 2014 18:37
On verge of giving up now... still cant fix it...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 11th Mar 2014 20:23
Actually, have some more ideas to play with - it's clearly a problem with returning strings and the CreateDeleteString thingymabob isn't working as it should...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
OldPMan
TGC Store Seller
15
Years of Service
User Offline
Joined: 10th Aug 2008
Location:
Posted: 12th Mar 2014 05:35
Hi!

I understand that the database must be on the local computer?
Work with it can only locally?
I was wondering this. for my new project need a database.
I want to try it.
Do I need anything except the plugin to work properly?

Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 12th Mar 2014 08:12
@ Russia,

Hi! Welcome back to the forums - have seen your new 3DPaint posting as well. Still have the original somewhere on my pc...!

As you can see from the above posts I'm currently going through a nightmare trying to sort some of the string return functions with this plugin... it may be these problems are isolated to Windows Vista and Windows 7 - but havent been able to test that.

The plugin is still in Alpha.

However, yes, this plugin has no dependencies so you need put no .dlls or whatever in your program folder. SQLITE (see links at top) is v different from all the other SQLs. No dependencies.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 15th Mar 2014 16:41
@ LukasW, Russia, Chris Tate, all,

See attached and top post above.

I solved it (I pray!). It's done. SQLITE plugin functions returning
strings now work. Sone name changes to certain functions so watch for that. Also nb that with SQLITE ARRAY functions (unlike all other SQLITE functions) columns start at 1, rather than 0.

Just so glad (fingers crossed) that Lukas W has working SQLITE for his project....

@ LukasW, I've also attached a project based on your code above - and it works, it all works.... Also it shows you where I've changed some of the names of the functions returning strings with recordsets, tables and arrays....

[Breathes massive sigh of relief]

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 15th Mar 2014 17:42 Edited at: 15th Mar 2014 17:51
Great work! I tried your demo code and it definitely works now. I have a couple of things left to do before I can use your plugin again (some bug fixes), but hopefully tomorrow I will again implement this!

Nice job

IS that a game, a program, or 3 year old drawing.
Chris Tate
DBPro Master
15
Years of Service
User Offline
Joined: 29th Aug 2008
Location: London, England
Posted: 15th Mar 2014 21:28
Good news; I knew you would eventually solve the problem.

OldPMan
TGC Store Seller
15
Years of Service
User Offline
Joined: 10th Aug 2008
Location:
Posted: 16th Mar 2014 03:31
Good news! I'll try.
Great job!

peterJBE
16
Years of Service
User Offline
Joined: 11th Mar 2008
Location: Belgium
Posted: 16th Mar 2014 13:15
Great Job.
It is good for DBpro to have a plugin like that.
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 16th Mar 2014 15:14 Edited at: 16th Mar 2014 15:15
While the string is working fine, now I have problem with integers
First of all it does not sort my query properly, and secondly, it does not return correct integer value. Please run this example code and you will understand.



IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 16th Mar 2014 19:15
@ Lukas W,

OK, will do - don't think it enters the rows in a 1,2,3 order anyway.

Will run your code and have a look-see.

Bear with me though - prob Mon/Tue for response.

One day this plugin will work fully!

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 16th Mar 2014 21:39
@ Lukas W,

Can you help and see what is going on here? What is the logic?

I modified your code to help see what was happening and discovered some thing. Try this...



I've checked outside DBPro and this plugin and the database is created as you expect - it's just the data being pulled from it that appears to be contrary...?

What do you think is happening? (I'll dive back in to see where I might be going wrong with the plugin too)

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Ortu
DBPro Master
16
Years of Service
User Offline
Joined: 21st Nov 2007
Location: Austin, TX
Posted: 16th Mar 2014 21:42 Edited at: 16th Mar 2014 21:43
The sorting issue seems to be more a problem of sqlite next record row() it seems to run through all the odd numbered rows, then go back and run the even rows.

If you iterate the record set using sqlite goto record row() to directly access the intended row, the sorting works properly.

However, there still seems to be some weird offset issue with row 0.

run the following example, it will sort properly on ID, but row 0 and row 1 are duplicates, the ABC column values do not correctly match to the ID column value for the same row, and row 20 has a value for the ID column but no value at all for the ABC column.





Attachments

Login to view attachments
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 16th Mar 2014 21:47
Thanks Ortu,

The table is definitely created properly but the functions are not reading correctly.

Ortu, Lukas W,

I've already spotted a couple of minor slip-ups (!) in the plugin when I was trying everything to make the string returns work.

I will release a fresh version within 24 hours and let's see where that takes us.

Watch this space.

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Lukas W
20
Years of Service
User Offline
Joined: 5th Sep 2003
Location: Sweden
Posted: 16th Mar 2014 22:15
Looking forward to it. Maybe at this rate we will bring this plugin out from alpha stage and into a beta

IS that a game, a program, or 3 year old drawing.
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 16th Mar 2014 23:13 Edited at: 16th Mar 2014 23:14
Let's not be too hasty....

Thanks again for all the testing to destruction...

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...
Duffer
21
Years of Service
User Offline
Joined: 9th Feb 2003
Location: chair
Posted: 17th Mar 2014 18:59 Edited at: 17th Mar 2014 19:11
@ Lukas W, Ortu etc,

OK, so I've done some nipping and tucking in the plugin.

Try the below (and see first post). I will also try Ortu's code.

Fingers crossed.

(@ Ortu - rows start at 1)

Ortu's code modified now works?


and I think Lukas W's code works too?


Ortu, Lukas W - let me know what you think? Is it working properly now?

a long time dabbler with DBC and DBPro with no actual talent but lots of enthusiasm...

Attachments

Login to view attachments

Login to post a reply

Server time is: 2024-04-24 06:13:35
Your offset time is: 2024-04-24 06:13:35