Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: Три вопроса в одном: MS ADO DataControl, MS Dat... Добавлено: 07.10.02 16:19  

Автор вопроса:  Comanche

Вопрос №1.
Есть ли что-нибудь побыстрее, чем DataGrid? Вроде решаю простейшую задачу, а оно так тормозит...
Поясню:
Есть MDB-база, в которой 2 таблицы: Компании и Сотрудники (к примеру). Работать с ними надо из VB-проекта. Размещаю на форме две пары контролов: ADODC + DataGrid. Первая пара настроена на таблицу Компании, вторая - на таблицу Сотрудники. Когда у первого ADODC происходит событие MoveComplete, то у второго ADODC - меняю RecordSource (пишу туда SQL-запрос) и делаю ему Refresh, и у второго грида делаю сразу после этого ClearFields и ReBind. В итоге вторая парочка отображает сотрудников только той компании, которая выбрана в первой парочке.

Оно работает, но гораздо медленнее, чем если заменить DataGrid на TextBox-ы или чем если работать прямо в самом Аксессе (с помощью комбинации Форма + Подчинённая форма).

Может, есть более шустрая технология?!

Вопрос №2.
Что это за секретные свойства такие у DataGrid-а - SelStartRow и SelEndRow? В скрытых свойствах их нет, если к ним пытаться обратиться - ругается, но в MSDN-е написано, что они есть, наряду с SelStartCol и SelEndCol. Эти-то есть, но они мне не нужны. Мне надо ВЫДЕЛИТЬ ряд в датагриде - т.е. не просто передвинуть стрелочку на селекторе, а ЗАЛИТЬ ряд - как бывает, если на селекторе щёлкнешь мышкой вручную. Я так понял, что программно это можно сделать только через эти два загадочных свойства, а они не пашут!

Наверняка это можно ещё сделать и через API-функцию SendMessage, но я не знаю констант датагрида.

Есть какие-нибудь идеи?

Вопрос №3.
Если мне надо выбрать (через SQL) записи из RecordSet-а, у которых поле "Название" (к примеру) РАВНО заданной строке, то никаких проблем: "... Where Companies.Название = <строка>". А что делать, если надо выбрать не по равенству, а по ВХОЖДЕНИЮ строки? Не писать же "... Where Instr(1, Companies.Название, <строка>) > 0" ?!

==================================================================================
PS: Если будете по первому вопросу советовать какие-нибудь альтернативные ActiveX-контролы (вместо MS датагрида), то уж присоветуйте тогда контрол, который позволяет выделять цветом или шрифтом отдельные записи в его гриде ;-)

Ответить

  Ответы Всего ответов: 1  

Номер ответа: 1
Автор ответа:
 MAGNUS



Вопросов: 12
Ответов: 430
 Профиль | | #1 Добавлено: 07.10.02 17:49

1.MsHFlexGrid+ADO. Работал на этом с ОЧЕНЬ большими обьемами данных и все нормально.

2.Не помню, надо глянуть, а времени пока нету.

3. WHERE Название Like ('%STRING%') вариантов еще много, посмотри в МСДН на LIKE .

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам