Go Back   vb.org Archive > vBulletin 3 Discussion > vB3 General Discussions
FAQ Community Calendar Today's Posts Search

Reply
 
Thread Tools Display Modes
  #1  
Old 09-04-2007, 12:37 AM
Panman Panman is offline
 
Join Date: Dec 2005
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default Get Type of SQL Errors?

If an SQL query error occurs, is there way to detect what type of error it was? Here are the two basic things I need to detect.

1. A SELECT, UPDATE, DELETE querys:
a) It worked, all went well
b) Could not find record
c) Something else...

2. A INSERT query:
a) It worked, all went well
b) Duplicate record (ID) found, could not insert
c) Something else...

I'm sure there is a specific code to find this out but it would probably differ between database types. So, I'm just either looking for a way to have vB tell me or if someone has a nice compiled list of error codes for the supported databases. Thanks

To add to the INSERT duplicate error, I'd also need to know if it was a non-unique field/record. I have ID and NAME which both need to be unique.
Reply With Quote
  #2  
Old 09-04-2007, 04:13 AM
Eikinskjaldi's Avatar
Eikinskjaldi Eikinskjaldi is offline
 
Join Date: Feb 2006
Location: Hell, never looked better
Posts: 572
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Panman View Post
If an SQL query error occurs, is there way to detect what type of error it was? Here are the two basic things I need to detect.

1. A SELECT, UPDATE, DELETE querys:
a) It worked, all went well
b) Could not find record
c) Something else...

2. A INSERT query:
a) It worked, all went well
b) Duplicate record (ID) found, could not insert
c) Something else...

I'm sure there is a specific code to find this out but it would probably differ between database types. So, I'm just either looking for a way to have vB tell me or if someone has a nice compiled list of error codes for the supported databases. Thanks

To add to the INSERT duplicate error, I'd also need to know if it was a non-unique field/record. I have ID and NAME which both need to be unique.
Well since you are running vb there is only one database type, and that is mysql, the error codes for which reside over in the mysql documentation.

You cannot get a duplicate error on a field that is not indexed unique, cause the latter is a pre-requisite for the former. You can index what ever table it is you are taling about so that it has dual primary keys, or the indices on the two fields are unique.

Note that select, update and delete will not spit an error if a record is not found, it will simply not do anything to the database/return no rows
Reply With Quote
  #3  
Old 09-04-2007, 11:54 PM
Panman Panman is offline
 
Join Date: Dec 2005
Posts: 7
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Ah, I did not realize that vB only supports mySQL. That makes it fairly easy. Do you know what versions of mySQL are supported? Or maybe, do the error codes change between version? I wouldn't think so..

The id will be specified as the primary key and the name is just indexed as unique. I'm assuming there will be a different error code for each.?.?

I didn't think about the affected rows for checking if anything was updated, deleted, etc. That will be easy to check for. And for the SELECT statements, it just won't return any rows, correct? Thanks for your help, it's greatly appreciated!
Reply With Quote
  #4  
Old 09-05-2007, 10:31 AM
Eikinskjaldi's Avatar
Eikinskjaldi Eikinskjaldi is offline
 
Join Date: Feb 2006
Location: Hell, never looked better
Posts: 572
Благодарил(а): 0 раз(а)
Поблагодарили: 0 раз(а) в 0 сообщениях
Default

Quote:
Originally Posted by Panman View Post
Ah, I did not realize that vB only supports mySQL.
Well its LAMP, what other choices are there? Also the vb code is full of mysql specific sqls.


Quote:
That makes it fairly easy. Do you know what versions of mySQL are supported?
Everything over 4.0

Quote:
Or maybe, do the error codes change between version? I wouldn't think so..
no they do not.

Quote:
The id will be specified as the primary key and the name is just indexed as unique. I'm assuming there will be a different error code for each.?.?
No idea

Quote:
I didn't think about the affected rows for checking if anything was updated, deleted, etc. That will be easy to check for. And for the SELECT statements, it just won't return any rows, correct? Thanks for your help, it's greatly appreciated!
right and np
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT. The time now is 01:42 AM.


Powered by vBulletin® Version 3.8.12 by vBS
Copyright ©2000 - 2024, vBulletin Solutions Inc.
X vBulletin 3.8.12 by vBS Debug Information
  • Page Generation 0.03500 seconds
  • Memory Usage 2,196KB
  • Queries Executed 13 (?)
More Information
Template Usage:
  • (1)SHOWTHREAD
  • (1)ad_footer_end
  • (1)ad_footer_start
  • (1)ad_header_end
  • (1)ad_header_logo
  • (1)ad_navbar_below
  • (1)ad_showthread_beforeqr
  • (1)ad_showthread_firstpost
  • (1)ad_showthread_firstpost_sig
  • (1)ad_showthread_firstpost_start
  • (6)bbcode_quote
  • (1)footer
  • (1)forumjump
  • (1)forumrules
  • (1)gobutton
  • (1)header
  • (1)headinclude
  • (1)navbar
  • (3)navbar_link
  • (120)option
  • (4)post_thanks_box
  • (4)post_thanks_button
  • (1)post_thanks_javascript
  • (1)post_thanks_navbar_search
  • (4)post_thanks_postbit_info
  • (4)postbit
  • (4)postbit_onlinestatus
  • (4)postbit_wrapper
  • (1)spacer_close
  • (1)spacer_open
  • (1)tagbit_wrapper 

Phrase Groups Available:
  • global
  • inlinemod
  • postbit
  • posting
  • reputationlevel
  • showthread
Included Files:
  • ./showthread.php
  • ./global.php
  • ./includes/init.php
  • ./includes/class_core.php
  • ./includes/config.php
  • ./includes/functions.php
  • ./includes/class_hook.php
  • ./includes/modsystem_functions.php
  • ./includes/functions_bigthree.php
  • ./includes/class_postbit.php
  • ./includes/class_bbcode.php
  • ./includes/functions_reputation.php
  • ./includes/functions_post_thanks.php 

Hooks Called:
  • init_startup
  • init_startup_session_setup_start
  • init_startup_session_setup_complete
  • cache_permissions
  • fetch_postinfo_query
  • fetch_postinfo
  • fetch_threadinfo_query
  • fetch_threadinfo
  • fetch_foruminfo
  • style_fetch
  • cache_templates
  • global_start
  • parse_templates
  • global_setup_complete
  • showthread_start
  • showthread_getinfo
  • forumjump
  • showthread_post_start
  • showthread_query_postids
  • showthread_query
  • bbcode_fetch_tags
  • bbcode_create
  • showthread_postbit_create
  • postbit_factory
  • postbit_display_start
  • post_thanks_function_post_thanks_off_start
  • post_thanks_function_post_thanks_off_end
  • post_thanks_function_fetch_thanks_start
  • post_thanks_function_fetch_thanks_end
  • post_thanks_function_thanked_already_start
  • post_thanks_function_thanked_already_end
  • fetch_musername
  • postbit_imicons
  • bbcode_parse_start
  • bbcode_parse_complete_precache
  • bbcode_parse_complete
  • postbit_display_complete
  • post_thanks_function_can_thank_this_post_start
  • tag_fetchbit_complete
  • forumrules
  • navbits
  • navbits_complete
  • showthread_complete