Как задать максимум возвращаемых строк?
От: Аноним  
Дата: 07.02.05 15:33
Оценка:
Привет!
Есть код, который запрашивает в AD данные (например, User'ов)
В нем возвращается не более 2000 строк. Можно это как-нибудь победить?

int st=0;
        
OleDbConnection Connection = new OleDbConnection("Provider=ADsDSOObject");

try
{
    Connection.Open();
    Console.WriteLine(DateTime.Now.ToString()+" Connection to Active Directory established successfully.");
}
catch
{
    Console.WriteLine(DateTime.Now.ToString()+" Error connection to Active Directory.");
    return;
}

string objQuery = "Select pager, samaccountname from 'LDAP://DC=int,DC=cboss,DC=ru' " + "where objectCategory = 'CN=Person,CN=Schema,CN=Configuration,DC=int,DC=cboss,DC=ru'";
OleDbCommand objCommand = new OleDbCommand(objQuery , Connection);
            
try
{
    OleDbDataReader objReader = objCommand.ExecuteReader();
            
    while (objReader.Read())
    {
        st++;
        Console.WriteLine(objReader.GetValue(0).ToString()+" "+objReader.GetValue(1).ToString());
    }
    objReader.Close();
    Connection.Close();
}
catch(Exception ex)
{
    Console.WriteLine(ex.Message);
}

Console.WriteLine(st.ToString());
Console.ReadLine();

Re: Как задать максимум возвращаемых строк?
От: TK Лес кывт.рф
Дата: 08.02.05 11:22
Оценка:
Hello,
> Есть код, который запрашивает в AD данные (например, User'ов)
> В нем возвращается не более 2000 строк. Можно это как-нибудь победить?
>
Надо использовать Range и делать несколько запросов.
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re: Как задать максимум возвращаемых строк?
От: Аноним  
Дата: 08.02.05 13:39
Оценка:
В запросе указывай LIMIT start, end

например

SELECT * FROM Books LIMIT 1, 10
Re[2]: Как задать максимум возвращаемых строк?
От: andrey-k-n  
Дата: 08.02.05 13:57
Оценка:
Здравствуйте, TK, Вы писали:

TK>Надо использовать Range и делать несколько запросов.


Можно подробнее.
Re[3]: Как задать максимум возвращаемых строк?
От: TK Лес кывт.рф
Дата: 08.02.05 13:59
Оценка:
Hello, "andrey-k-n"
>
> TK>Надо использовать Range и делать несколько запросов.
> Можно подробнее.

Если работает поиск по форуму, то можно поискать по ключевым словам Range,
LDAP — там должны быть готовые примеры использования range.
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[2]: Как задать максимум возвращаемых строк?
От: andrey-k-n  
Дата: 08.02.05 14:05
Оценка:
Здравствуйте, Аноним, Вы писали:

А>В запросе указывай LIMIT start, end


А>например


А>SELECT * FROM Books LIMIT 1, 10


Получаю ошибку DB_E_ERRORSINCOMMAND(0x80040E14)
Re[3]: Как задать максимум возвращаемых строк?
От: Аноним  
Дата: 08.02.05 15:15
Оценка:
Сори, это я для MySQL сказал

Короче, через DataAdapter можно сделать Fill с такой-то по такую-то. Можно собственно ручно воспользоваться SqlReader.
Если этоне катит, можно на SQL сделать по разному:
1. Открываь курсор
2. Хитрая логика с использованием временных таблиц или/и RowCount — наиболее быстро работает
Re[4]: Как задать максимум возвращаемых строк?
От: andrey-k-n  
Дата: 08.02.05 16:13
Оценка:
Здравствуйте, TK, Вы писали:

TK>Если работает поиск по форуму, то можно поискать по ключевым словам Range,

TK>LDAP — там должны быть готовые примеры использования range.

Там не то. А что за объект такой Range или метод? Ничего подобного не нашел в пространстве System.Data
Re[5]: Как задать максимум возвращаемых строк?
От: TK Лес кывт.рф
Дата: 08.02.05 17:03
Оценка:
Hello, "andrey-k-n"
>
> TK>Если работает поиск по форуму, то можно поискать по ключевым словам
> Range,
> TK>LDAP — там должны быть готовые примеры использования range.
>
> Там не то. А что за объект такой Range или метод? Ничего подобного не
> нашел в пространстве System.Data

Посмотри в MSDN статью с заголовком Using ADO for Range Retrieval
LDAP:
"<LDAP://CN=NewGroup,DC=Fabrikam,DC=Com>;(objectCategory=group);name,member;Range=51-*;base"
SQL: "select Name, 'member;Range=0-50' from
'LDAP://CN=Group1,DC=Fabrikam,DC=Com' where objectCategory='group'"
Posted via RSDN NNTP Server 1.9 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[6]: Как задать максимум возвращаемых строк?
От: andrey-k-n  
Дата: 09.02.05 08:58
Оценка:
Здравствуйте, TK, Вы писали:

Использую строку

 string objQuery = "<LDAP://DC=int,DC=аааа,DC=ru>;(&(objectcategory=person)(pager=*));accountname, pager;range=2000-*;subtree";


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