Страница: 1 | 
		
		 
			   
			 
			 делаю что-то вроде этого: Dim cmd As New OdbcCommand() Dim cmdUpd As New OdbcCommand() Dim con As New OdbcConnection() Dim dr As OdbcDataReader MakeCon(con) cmd.Connection = con cmdUpd.Connection = con cmd.CommandText="..." dr = cmd.ExecuteReader while dr.Read  cmdUpd.Cancel()  cmdUpd.CommandText = sqlUpd  cmdUpd.ExecuteNonQuery() - вот на этой строке возникает ошибка:There is already an open DataReader associated with this Connection which must be closed first end while ..... Вопрос: зачем мне закрывать DataReader, который использует Connection, если я еще не закончил с ним работу, для того что бы выполнить cmdUpd.ExecuteNonQuery() ? может забыл установить какойнить параметр? 
			 
			 на другом форуме мне ответили вот так: "DataReader слишком низкоуровневая штука.  Он позволяет читать данные в одном напрвлении(зато очень быстро) и монопольно использует Connection. Тут надо либо 2 объекта Connection либо считать данные в DataSet и использовать их локальную копию.  Удачи) " Dim con As New OdbcConnection() Dim dr As OdbcDataReader после операции  Закрой Connectio и Reader так: con.close() dr.close() Удачи ! Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: DataReader
     
    
Добавлено: 22.09.03 14:54
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
    
  Артём Л. | ICQ: 280044491 
      
       
  
 
    
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 3
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа:
 Павел
![]()
![]()
![]()
![]()
![]()
![]()
Администратор
ICQ: 326066673 
Вопросов: 368
Ответов: 5968
      
 Web-сайт:  
 Профиль |  | #1
      
Добавлено:  23.09.03 08:08
       
    
       
  
Сам я с этим не сталкивался. Но возможное объяснение: вдруг ты 
    
обновишь данные в БД, а datareader будет тебе возвращать старые
данные... Это лишь предположение. Лучше почитай MSDN.
Возможное решение проблемы:
1. Создать отдельный connection.
2. Получать данные не через DataReader, а одной пачкой в DataSet через
DataAdapter. Этот вариант мне кажется оптимальным ... хотя я не знаю
твоей задачи...
3. Почитать MSDN 
) Это самый умный вариант решения.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа:
  Артём Л.
![]()
![]()
ICQ: 280044491 
Вопросов: 43
Ответов: 227
      
 Профиль |  | #2
       
Добавлено:  23.09.03 13:03
       
    
       
  
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа:
 inf
![]()
Вопросов: 0
Ответов: 1
      
 Web-сайт:  
 Профиль |  | #3
      
Добавлено:  01.04.04 09:40