Patch level : 314
Files correlati : tp0.exe Ricompilazione Demo : [ ] Commento : Migliorata gestione errori di connessione ad ODBC git-svn-id: svn://10.65.10.50/trunk@18928 c028cbd2-c16b-5b4b-a496-9718f37d4682
This commit is contained in:
		
							parent
							
								
									bfe130f077
								
							
						
					
					
						commit
						1b33aaa5fb
					
				| @ -176,20 +176,24 @@ TRecnotype TODBC_recordset::items() const | ||||
| { | ||||
|   if (_items == 0) | ||||
|   { | ||||
|     TString sql; parsed_text(sql); | ||||
|     TPerformance_profiler prof("ODBC count"); | ||||
| 
 | ||||
|     TRecnotype& i = (TRecnotype&)_items; | ||||
|     if (!_columns_loaded) | ||||
|     XVT_ODBC oc = connection(); | ||||
|     if (oc != NULL) | ||||
|     { | ||||
|       TODBC_recordset* myself = (TODBC_recordset*)this; | ||||
|       myself->_page.destroy(); | ||||
|       myself->_cursor_pos = 0; | ||||
|       i = xvt_odbc_execute(connection(), sql, query_get_items, (void*)this); | ||||
|       myself->_columns_loaded = true; | ||||
|       TString sql; parsed_text(sql); | ||||
|       TPerformance_profiler prof("ODBC count"); | ||||
| 
 | ||||
|       TRecnotype& i = (TRecnotype&)_items; | ||||
|       if (!_columns_loaded) | ||||
|       { | ||||
|         TODBC_recordset* myself = (TODBC_recordset*)this; | ||||
|         myself->_page.destroy(); | ||||
|         myself->_cursor_pos = 0; | ||||
|         i = xvt_odbc_execute(oc, sql, query_get_items, (void*)this); | ||||
|         myself->_columns_loaded = true; | ||||
|       } | ||||
|       else | ||||
|         i = xvt_odbc_execute(oc, sql, NULL, NULL); | ||||
|     } | ||||
|     else | ||||
|       i = xvt_odbc_execute(connection(), sql, NULL, NULL); | ||||
|   } | ||||
|   return _items; | ||||
| } | ||||
| @ -198,12 +202,16 @@ unsigned int TODBC_recordset::columns() const | ||||
| { | ||||
|   if (!_columns_loaded && _column.items() == 0) | ||||
|   { | ||||
|     TODBC_recordset* myself = (TODBC_recordset*)this; | ||||
|     TString sql; parsed_text(sql); | ||||
|     TPerformance_profiler prof("ODBC info"); | ||||
|     myself->_cursor_pos = 0; | ||||
|     xvt_odbc_execute(connection(), sql, query_get_columns, (void*)this); | ||||
|     myself->_columns_loaded = true; | ||||
|     XVT_ODBC oc = connection(); | ||||
|     if (oc != NULL) | ||||
|     { | ||||
|       TODBC_recordset* myself = (TODBC_recordset*)this; | ||||
|       TString sql; parsed_text(sql); | ||||
|       TPerformance_profiler prof("ODBC info"); | ||||
|       myself->_cursor_pos = 0; | ||||
|       xvt_odbc_execute(oc, sql, query_get_columns, (void*)this); | ||||
|       myself->_columns_loaded = true; | ||||
|     } | ||||
|   } | ||||
|   return _column.items(); | ||||
| } | ||||
| @ -276,6 +284,11 @@ bool TODBC_recordset::move_to(TRecnotype n) | ||||
| 
 | ||||
|   if (n < _first_row || n >= _first_row+_page.items()) | ||||
|   { | ||||
|     XVT_ODBC oc = connection(); | ||||
|     if (oc == NULL) | ||||
|       return false; | ||||
| 
 | ||||
| 
 | ||||
|     TString sql; parsed_text(sql); | ||||
|     if (tot > _pagesize && sql.find("LIMIT ") < 0) | ||||
|     { | ||||
| @ -289,9 +302,11 @@ bool TODBC_recordset::move_to(TRecnotype n) | ||||
|       else | ||||
|         _first_row = n; | ||||
|     } | ||||
| 
 | ||||
|     TPerformance_profiler prof("ODBC query"); | ||||
|     _cursor_pos = 0; | ||||
|     xvt_odbc_execute(connection(), sql, query_get_rows, this); | ||||
|     xvt_odbc_execute(oc, sql, query_get_rows, this); | ||||
|      | ||||
|     if (!_columns_loaded) | ||||
|       _columns_loaded = true;  // Brutto posto ma necessario
 | ||||
|   } | ||||
| @ -301,10 +316,18 @@ bool TODBC_recordset::move_to(TRecnotype n) | ||||
| 
 | ||||
| long TODBC_recordset::exec(const char* sql) | ||||
| { | ||||
|   TPerformance_profiler prof("ODBC command"); | ||||
| 	set(sql);  | ||||
| 	TString cmd; parsed_text(cmd); | ||||
|   return xvt_odbc_execute(connection(), cmd, NULL, NULL); | ||||
|   long err = -1; | ||||
|    | ||||
|   XVT_ODBC oc = connection(); | ||||
|   if (oc != NULL) | ||||
|   { | ||||
|     TPerformance_profiler prof("ODBC command"); | ||||
| 	  set(sql);  | ||||
| 	  TString cmd; parsed_text(cmd); | ||||
|     err = xvt_odbc_execute(oc, cmd, NULL, NULL); | ||||
|   } | ||||
|    | ||||
|   return err; | ||||
| } | ||||
| 
 | ||||
| TRecnotype TODBC_recordset::current_row() const | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user