powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ С SQL ЗАПРОСОМ!
17 сообщений из 17, страница 1 из 1
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707177
Alexus_stav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть таблица "Данные" (Код, КодПродукта, Период, Значение).
Необходимо сделать выборку типа "Select Значение From Данные Where КодПродукта=ID"

При этом формируется вертикальная выборка значений:

Период_____Значение
2001_________X1
2002_________X2
2003_________X3
2004_________X4

Как сделать выборку так, чтобы она была горизонтальной:

Период_____2001__2002__2003__2004
Зачение_____X1____X2____X3____X4

При этом выбранные значения формируются в виде RecordSet и прикрепляются к DataGrid через ADODC.
Adodc.RecordSource = "SQL Запрос"
Set DataGrid.DataSource=Adodc

ПОМОГИТЕ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707247
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
С датагридом я не работал,но могу привести как это делается в FlexGrid
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
dim i as integer

strSql = "Select Значение From Данные Where КодПродукта=ID"

rs.Open strSql, cnMain, adOpenStatic, adLockReadOnly

FgUsers.Cols = rs.RecordCount +  1 
Me.FgUsers.Rows =  3 

i =  1 

Do Until rs.EOF
    With Me.FgUsers
               
        .Col = i
        .Row =  1 : .Text = rs!Период
        .Row =  2 : .Text = rs!Значение
                
    End With

    rs.MoveNext
loop
rs.close


Может быть мой ответ не в тему,но надеюсь что поможет.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707271
Melkiades
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 Tauzer: категорически не согласен. Выборка должна разворачиваться на сервере, а клиент должен тупо (и быстро) ее отображать.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707289
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Я всегда использовал такой вариант заполнения грида.Если поскажешь как это сделать правильнее ,то буду благодарен.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707298
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
почитай про TRANSFORM
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707326
Фотография barrabas
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIKOпочитай про TRANSFORM
смотря в какой СУБД, в аксе и вроде MSSQL200X трансформ есть а например в оракле его нет
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707404
SQLExplorer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Melkiades2 Tauzer: категорически не согласен. Выборка должна разворачиваться на сервере, а клиент должен тупо (и быстро) ее отображать.
Я согласен, что максимум работы должен выполнять сервер, но замечу, что в обоих случаях отобразить данные при помощи подобного цикла одинаково тупо и одинаково быстро
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707405
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MSSQL 6.x,7.x,2000 - такого НЕТ
надо юзать или самописные процедуры или (что более правильнее) использовать MSAS
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707507
Alexus_stav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Использую MS Access для хранения данных. Просто не найду правильного решения пробемы. Надо как бы трансонировать данные из вертикалього представления в горизонтальное так, чтобы полученный RecordSet можно было загонять в DataGrid и динамически обновлять данные.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707512
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLExplorer Melkiades2 Tauzer: категорически не согласен. Выборка должна разворачиваться на сервере, а клиент должен тупо (и быстро) ее отображать.
Я согласен, что максимум работы должен выполнять сервер, но замечу, что в обоих случаях отобразить данные при помощи подобного цикла одинаково тупо и одинаково быстро

Мужики, я плохо программирую, и возможно не знаю чего-то важного ибо учусь сам по себе, а нужную информацию беру в основном с этого форума.
Если мое заполнение грида тупое и не правильное, приведите пример как правильно это нужно сделать.

Заранее благодарен.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707517
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
TIKO уже написал, что нужно юзать

читай справку про TRANSFORM
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707583
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Пример:
Код: plaintext
1.
2.
3.
4.
TRANSFORM Sum(trnas.summa) AS [Sum-summa]
SELECT trnas.месяц
FROM trnas
GROUP BY trnas.месяц
PIVOT Format([mesac],"mmm") In ("янв","фев","мар","апр","май","июн","июл","авг","сен","окт","ноя","дек");
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707650
SQLExplorer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Tauzer SQLExplorer Melkiades2 Tauzer: категорически не согласен. Выборка должна разворачиваться на сервере, а клиент должен тупо (и быстро) ее отображать.
Я согласен, что максимум работы должен выполнять сервер, но замечу, что в обоих случаях отобразить данные при помощи подобного цикла одинаково тупо и одинаково быстро

Мужики, я плохо программирую, и возможно не знаю чего-то важного ибо учусь сам по себе, а нужную информацию беру в основном с этого форума.
Если мое заполнение грида тупое и не правильное, приведите пример как правильно это нужно сделать.

Заранее благодарен.

Твой способ очень даже хороший, для 99% приложений лучше не придумать, исключение составляют приложения возвращающие большое количество строк (что, как правило, неопровдано).

Под "тупо" я имел в виду простоту (а все гениальное как известно просто),

Теперь про быстроту. Нет разницы между перебором по колонкам или по строкам при заполнении грида, но если делать транспонирование, то это займет дополнительное время у сервера, хоть и не большое,наверное,
а это в свою очередь увеличит суммарное время.

Что касается, ADODC, то НЕ НУЖЕН ОН НИКОМУ, толко авторам книг "Первые шаги для чайников"
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33707733
Tauzer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SQLExplorer Tauzer SQLExplorer Melkiades2 Tauzer: категорически не согласен. Выборка должна разворачиваться на сервере, а клиент должен тупо (и быстро) ее отображать.
Я согласен, что максимум работы должен выполнять сервер, но замечу, что в обоих случаях отобразить данные при помощи подобного цикла одинаково тупо и одинаково быстро

Мужики, я плохо программирую, и возможно не знаю чего-то важного ибо учусь сам по себе, а нужную информацию беру в основном с этого форума.
Если мое заполнение грида тупое и не правильное, приведите пример как правильно это нужно сделать.

Заранее благодарен.

Твой способ очень даже хороший, для 99% приложений лучше не придумать, исключение составляют приложения возвращающие большое количество строк (что, как правило, неопровдано).

Под "тупо" я имел в виду простоту (а все гениальное как известно просто),

Теперь про быстроту. Нет разницы между перебором по колонкам или по строкам при заполнении грида, но если делать транспонирование, то это займет дополнительное время у сервера, хоть и не большое,наверное,
а это в свою очередь увеличит суммарное время.



Полностью Согласен.
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33708076
Alexus_stav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Необходима двухстороння связь с базой данных. Т.е. все изменения в таблице должны отражаться в базе. Исползование Microsoft FlexGrid или HiereticalGrid не обеспечивают такой метод доступа. При их использовании приходится все отслеживать кодом. когда необходим откат изменений, приходится делать копию таблицы, а при нажатии кнопки 'Сохранить' оригинальную таблицу и все связанные с ней заменяю резервными. Оченнь неудобно. В .Net это реализовано все через DataAdapet и DataSet..., но VS2005 требовательна к железу. Приходится использовать VB6. Только вот DataGrid функциональностью уступает (нельзя заблокировать первую колонку, нет выделения ячеек цветом и т.д.)

Может кто подскажет необходимо работать с базой в VB6 (SQL Server, MS Access), чтобы была система откатов изменений и работало быстро
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33708731
TIKO
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Alexus_stavНеобходима двухстороння связь с базой данных. Т.е. все изменения в таблице должны отражаться в базе. Исползование Microsoft FlexGrid или HiereticalGrid не обеспечивают такой метод доступа. При их использовании приходится все отслеживать кодом. когда необходим откат изменений, приходится делать копию таблицы, а при нажатии кнопки 'Сохранить' оригинальную таблицу и все связанные с ней заменяю резервными. Оченнь неудобно. В .Net это реализовано все через DataAdapet и DataSet..., но VS2005 требовательна к железу. Приходится использовать VB6. Только вот DataGrid функциональностью уступает (нельзя заблокировать первую колонку, нет выделения ячеек цветом и т.д.)

Может кто подскажет необходимо работать с базой в VB6 (SQL Server, MS Access), чтобы была система откатов изменений и работало быстро

прочти про ROLLBACK
...
Рейтинг: 0 / 0
ПОМОГИТЕ С SQL ЗАПРОСОМ!
    #33710282
shady
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Alexus_stavТолько вот DataGrid функциональностью уступает (нельзя заблокировать первую колонку, нет выделения ячеек цветом и т.д.)
я использую грид от ComponentOne. Там есть все это и даже больше.
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / ПОМОГИТЕ С SQL ЗАПРОСОМ!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]