NEW DBI API (MySQL /SQL)
This is very important for scripters! For AMXx 0.20, I have significantly changed the SQL interface. All plugins will be rendered broken, so you will need to upgrade.
If you need any help with this, just ask. I can help you convert your plugin or answer technical questions. Remember though, this is for 0.20 and you should be prepared to swap in the new code close to the release date (we will announce this). This new DBI is important because it gets rid of the shoddy interface from AMX 0.9.x. Plugin writers now get resource handles for both result sets and connections, as well as a better guarantee that the driver will not crash. To best explain this, here is a sample program: Code:
These differences are subtle and important. It means you can create nested or recursive SQL queries and not have the previous ones erased. It also gives you much better errorchecking/debugging control. You can also reference fields by name instead of number. To see more, look in the dbi.inc file from CVS. |
nice :)
Support for lastinsertid ? |
Code:
What about if the result is an "Empty set"? What is it supposed to return then? |
If the result is an empty set, the return value for the result handle (in this program, it is res), will be 0.
That's why I did <0 for INSERT, to check if the insert succeeded, and <=0 for SELECT, to make sure there were items in the table. Last insert id is a MySQL only feature so I won't add it to the DBI I think. You can do this: SELECT MAX(field) FROM table and get the first (only) result. |
Quote:
|
Quote:
|
Function not found (name "dbi_close")
CS16STEAM, Linux Server.
I downloaded from CVS all new plugins and include files (dbi.inc also). All plugins are version 2.0 now. I get these errors. L 07/05/2004 - 09:45:15: AMX Mod X log file started (file "addons/amxx/logs/L0705021.log") (version "0.16") L 07/05/2004 - 09:45:15: [AMXX] Function not found (name "dbi_close") (plugin "admin.amx") I suppose this is because I do not know how to make the modules. If my supposition is right, Can you help getting the modules made for us ! Thank you for any advice. Rasvan |
Don't use 0.20 stuff unless you know what you are doing ;]
We put it in CVS for collaboration, not for public use. |
Quote:
The CVS 0.20 version works great for me. As for the error: L 07/05/2004 - 11:20:42: [AMXX] Function not found (name "dbi_close") (plugin "admin.amx") I just commented out this line in admin.sma: //#define USING_SQL 1 And no more problems. NOTE: I suppose it is not illegal to use CVS, is it ? Thank you for everything, Rasvan |
Of course not, but if you're using 0.20 plugins that use 0.20 natives, it won't work.
I guess the bottom line is: Don't ask for support for stuff that isn't released :wink: |
All times are GMT -4. The time now is 02:40. |
Powered by vBulletin®
Copyright ©2000 - 2024, vBulletin Solutions, Inc.