Страница: 1 | 
		
		 
			   
			 
			 
			 
			 Страница: 1 | 
 
			
 
  
		
     
  
    
Вопрос: DAO обленился
     
    
Добавлено: 26.07.10 01:05
     
      
  
				
			  
					 
			
				 
    
		
       
    
Автор вопроса:  
     Dark Engine | Web-сайт: www.wentas.2bb.ru | ICQ: 343191665
 Dark Engine | Web-сайт: www.wentas.2bb.ru | ICQ: 343191665 
      
       
  
Вопрос такой, есть таблица типа:
 
    
где ID1 - просто внутренний номер, ID2 - идентификатор местоположения (что-то вроде складской базы). В одном местоположении могут лежать несколько предметов.
ID1 раздется случайно. Нужно отсортировать по местоположению, то есть по ID2. Запрос типа
выглядит абсолютно идентично запросу
отсортированному по ID1, что явно ненормально. Вопрос, что нужно изменить в запросе/декларации таблицы или еще чем, чтобы сортировка по ID2 работала?
Система VB 6
DAO v3.6
				
		
		
					 
			
				 
  
		
     
  
    
Ответы
     
    
Всего ответов: 9
     
      
  
		
	  
			 
	
		 
    
       
    
Номер ответа: 1 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #1
       
Добавлено:  26.07.10 01:33
       
    
       
  
Какая база данных использутеся?
 
    
Хочешь сказать что запрос
возвращает данные, не отсортированые по ID2? Тогда это какая-то странная проблема.
То что SELECT * FROM Table возвращает отсортированным по какому-то столбцу это не ошибка. В SQL не определено в каком порядке возвращаются строчки, если сортировка не указана в ORDER BY. Поэтому СУБД может возвращать строки в любом порядке, обычно в том порядке, в котором они физически хранятся в базе данных.
		
	  
			 
	
		 
    
       
    
Номер ответа: 2 
      
Автор ответа: Dark Engine
 Dark Engine

ICQ: 343191665 
Вопросов: 51
Ответов: 98
      
 Web-сайт:  
 Профиль |  | #2
      
Добавлено:  26.07.10 10:02
       
    
       
  
В смысле, какая база? Создаю обычным DBEngine.CreateDatabase. DAO 3.6. База паролированная, если знать пароль - Аксесс ее открывает.
 
    
Проблема и правда странная, я сам слегка обалдел от такого расклада.
Вообще, сортирует обычно все-таки по PRIMARY KEY, если не указано ничего иного. Ну не спроста он - первичный ключ. А, когда указал сортировку по ID2 выдает и правда неотсортированные данные, непонятно почему. Где и что я мог упустить?
		
	  
			 
	
		 
    
       
    
Номер ответа: 3 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #3
       
Добавлено:  26.07.10 14:06
       
    
       
  
 
    
В смысле, какая база? 
DAO это интерфейс для доступа к СУБД, а не СУБД. Я спрашивал какая СУБД используется.
Тут так и хочется сказать что select does not brake.
Проверь код, возможно, ты думаешь что в БД отправляется запрос с указанием сортировки, а на самом деле отправляется запрос без сортировки, может напутал где-то.
		
	  
			 
	
		 
    
       
    
Номер ответа: 4 
      
Автор ответа: Dark Engine
 Dark Engine

ICQ: 343191665 
Вопросов: 51
Ответов: 98
      
 Web-сайт:  
 Профиль |  | #4
      
Добавлено:  26.07.10 14:24
       
    
       
  
Думал над этим уже. Пришел к подобному выводу. Аксесс при SQL-запросе к той же базе нормально все отсортировал. Но код туп до невозможности. Рекордсет открываю так:
 
    
Какие опции надо добавить, чтобы сортировка заработала?
		
	  
			 
	
		 
    
       
    
Номер ответа: 5 
      
Автор ответа: Dark Engine
 Dark Engine

ICQ: 343191665 
Вопросов: 51
Ответов: 98
      
 Web-сайт:  
 Профиль |  | #5
      
Добавлено:  26.07.10 14:41
       
    
       
  
 
    
Строка подключения к базе
		
	  
			 
	
		 
    
       
    
Номер ответа: 6 
      
Автор ответа: Artyom
 Artyom







Разработчик
Вопросов: 130
Ответов: 6602
      
 Профиль |  | #6
       
Добавлено:  27.07.10 01:49
       
    
       
  
Вобщем-то никаких, сортировка должна работать...
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 7 
      
Автор ответа: Arvitaly
 Arvitaly






ICQ: 301746136 
Вопросов: 28
Ответов: 549
      
 Web-сайт:  
 Профиль |  | #7
      
Добавлено:  27.07.10 01:52
       
    
       
  
ID2 - число?
 
    
		
	  
			 
	
		 
    
       
    
Номер ответа: 8 
      
Автор ответа: Dark Engine
 Dark Engine

ICQ: 343191665 
Вопросов: 51
Ответов: 98
      
 Web-сайт:  
 Профиль |  | #8
      
Добавлено:  27.07.10 08:59
       
    
       
  
 
    
Вобщем-то никаких, сортировка должна работать...  
Вот и я сидел и тихо благим матом ругался.
ID2 - число?  
Уважаемый, если посмотреть на декларацию таблицы, можно четко увидеть, что как ID1, так и ID2 имеют тип LONG, длинное целое. Декларация в самом моем первом сообщении.
		
	  
			 
	
		 
    
       
    
Номер ответа: 9 
      
Автор ответа: Dark Engine
 Dark Engine

ICQ: 343191665 
Вопросов: 51
Ответов: 98
      
 Web-сайт:  
 Профиль |  | #9
      
Добавлено:  27.07.10 10:46
       
    
       
  
Проблема решена. Я очень извиняюсь, там был реально мой косяк. Да, вначале он реально не сортировал. В рекордсете указал тип Dynaset - стал сортировать, а в таблице все равно выдавал несортированный. А причина была в том, что для получения ай-ди-шников по номеру временно открывал еще один рекордсет и без сортировки, он в итоге по нему и выдавал. Там когда указал - все нормально стало работать.