Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2011, 23:23   #1
halerik
 
Регистрация: 10.03.2011
Сообщений: 8
По умолчанию Посчитать строки и рандом вывести

Здравствуйте
Вот код
Код:
procedure TForm1.sButton1Click(Sender: TObject);
var
sltb:TSQLiteTable;
begin
sltb := sldb.GetTable('SELECT id,res FROM test');
sMemo1.Text:=sltb.FieldAsString(0)+' - '+ sltb.FieldAsString(1);
end;
кто поможет сделать так чтобы сначала посчиталист сколько строк и вывел одну любую
halerik вне форума Ответить с цитированием
Старый 15.03.2011, 08:14   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
сначала посчиталист сколько строк
Код:
:= sldb.GetTable('SELECT count(id) FROM test');
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2011, 09:50   #3
halerik
 
Регистрация: 10.03.2011
Сообщений: 8
По умолчанию

можно поподробней то я новичок в делфи
halerik вне форума Ответить с цитированием
Старый 15.03.2011, 14:17   #4
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Здравствуйте
Цитата:
Сообщение от halerik Посмотреть сообщение
можно поподробней то я новичок в делфи
Stilet написал
Код:
:= sldb.GetTable('SELECT count(id) FROM test');
Вышеприведенное решение действительно считало (Посчитать строки) строки (count(id)). Другое решение - просто узнать количество строк (записей), тогда
Код:
YourVar := sltb.RowCount
А теперь рандом вывести
Код:
procedure TForm1.sButton1Click(Sender: TObject);
var
 sltb:TSQLiteTable;
begin
 sltb := sldb.GetTable('SELECT id,res FROM test');
 For i := 0 to Random(sltb.RowCount-1) do
  sltb.Next;
 sMemo1.Text:=sltb.FieldAsString(0)+' - '+ sltb.FieldAsString(1);
end;
До свидания
OlegVE вне форума Ответить с цитированием
Старый 15.03.2011, 14:38   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
For i := 0 to Random(sltb.RowCount-1) do
sltb.Next;
Хы... а если их 999 999 999 999 999 штук? Представляешь сколько шарашить код будет
Вообще-то в SQL есть инструкции взять конкретную по номеру строку.
Например:
Код:
SELECT id,res FROM test where rownum=5
Но я не знаю как у SQLLite с этим обстоит..
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2011, 14:55   #6
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
Но я не знаю как у SQLLite с этим обстоит..
Я тоже. Что я знаю, так это то, что SQLLite загибается, если NothWind (Борей) перевести в формат SQLLite. FireFox имея такую СУБД при множестве закладок у меня тормозит до безобразия. Так что можно смело уменьшить количество записей на девять-десять порядков
OlegVE вне форума Ответить с цитированием
Старый 15.03.2011, 15:00   #7
halerik
 
Регистрация: 10.03.2011
Сообщений: 8
По умолчанию

хмм...вот если просто нужно любую строку вывести из таблицы как поступить...даже без подсчета
halerik вне форума Ответить с цитированием
Старый 15.03.2011, 15:05   #8
OlegVE
Форумчанин
 
Регистрация: 27.09.2010
Сообщений: 376
По умолчанию

Любую или нужную?
Если любую - попробуйте мой код (если немного записей, замечание верно Stilet), если нужную (а также любую, но опять с Random) - то, что предложил Stilet
Код:
SELECT id,res FROM test where rownum=5
Только посмотрите уже сами, поддерживает ли эту инструкцию SQLite. Последний раз я пробовал SQLite два года назад и после Борея, как я упоминал выше, отказался.

Последний раз редактировалось OlegVE; 15.03.2011 в 15:07.
OlegVE вне форума Ответить с цитированием
Старый 15.03.2011, 15:07   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
просто нужно любую строку вывести из таблицы
Давай задачу конкретнее... Просто так только мухи... гм.гм... ))
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.03.2011, 15:19   #10
halerik
 
Регистрация: 10.03.2011
Сообщений: 8
По умолчанию

с Выводом строк разобрался) спасибо.
вот еще такой вопрос можно ли предупредить повтор строк?

Последний раз редактировалось halerik; 15.03.2011 в 15:23.
halerik вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
как выполняя одновремено дваусловия посчитать строки samsun Microsoft Office Excel 5 12.12.2010 06:37
Вывести рандом двумерного массива в стринггрид. Space91 Общие вопросы Delphi 6 26.05.2010 15:46
Строки. Как вывести часть строки? Anfall Общие вопросы Delphi 7 26.02.2009 09:10
посчитать количество предложений и вывести случайное dymych Общие вопросы C/C++ 0 21.11.2008 14:28
считать из файла две строки, вывести на экран символы первой строки, которые отсутствуют во второй gotex Помощь студентам 4 08.05.2008 02:27