Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
ВнизУ меня есть поиск логинов по memo как это сделать через БД? Найти похожие ветки
← →
WebSqlNeederr (2006-05-22 13:42) [0]Мне нужно перебирать в моей програме по 20 000 логинов каждые 5-10 секунд. Сейчас я их храню в memo и когда число логинов достигает 15-20 тыс то ощущаются оооочень большие тормоза. Если перенести хранение и поиск логинов на Базу Данных то от тормозов можно будет избавиться? Помогите как это реализовать с БД?
С БД в Делфи никогда раньше не работал, но есть опыт работы с БД MySQL в связке с php для веб программирования (сайты).
← →
Sergey13 © (2006-05-22 13:44) [1]Это БД-ориентированный вирус? 8-)
← →
WebSqlNeederr (2006-05-22 13:54) [2]Нет. Нужно проверять при добавлении нового логина существует ли уже такой и вот когда всего логинов больше 15-20 тыс то сильные тормоза восзникают :(
Как это сравнение реализовать с помощью БД??
← →
Sergey13 © (2006-05-22 13:58) [3]2[2] WebSqlNeederr (22.05.06 13:54)
>Как это сравнение реализовать с помощью БД??
Поиском по индексированному полю.
ЗЫ: Но осталось у меня сомнение насчет твоих коварных целей.
← →
Ega23 © (2006-05-22 13:58) [4]Интересно, где-это каждые 5-10 секунд новый пользователь добавляется???
А вообще - Select * from Logins where UpperCase(Login)=UpperCase("Login")
:о)
← →
WebSqlNeederr (2006-05-22 14:03) [5]Подозрительные какие, вам бы в шпиЕны :)
5-10 секунд это к тому что возможна у меня такая ситуация.
А можно по порядку. Вот у меня сейчас все реализовано сравнение через обычное сравнение текста в мемо (tStringList) как мне это теперь перенести в БД? Как вообще БД работает в Делфи - оно встроено или как ...
← →
Ega23 © (2006-05-22 14:04) [6]
> А можно по порядку. Вот у меня сейчас все реализовано сравнение
> через обычное сравнение текста в мемо (tStringList) как
> мне это теперь перенести в БД? Как вообще БД работает в
> Делфи - оно встроено или как ...
Если по порядку - то возьми самую толстую книжку про Delphi, найди работу с БД и хотя бы внимательно прочитай.
Потом уже можно будет и поговорить.
← →
sniknik © (2006-05-22 14:07) [7]> Как это сравнение реализовать с помощью БД??
запросом естественно... не, можно конечно и "вытащить" все на клиента и там локейтом в рекордсете... но такой подход не выдерживает критики в любой более менее грамотной клиент серверной программе.
запрос типа
SELECT 1 AS Yes FROM UserTable WHERE Login=:LogPar
присваиваеш параметру(LogPar) проверяемый логин, выполняеш запрос и если хоть чтонибудь вернуло (либо количество записей, либо поле на = 1 проверять, или на не NULL) значит логин есть.
естественно, для скорости на поле Login должен быть индекс... (хотя на 20 тыс записей и без него побыстрее чем с мемо будет, просто маловато записей...)
← →
WebSqlNeederr (2006-05-22 14:08) [8]Зачем мне шуршыть толстые книги если мне нужно просто перенести функциональность из строковой в БД-поиск?
StringGrid он уже работает с БД запросами? Или в каком элементе БД запросы ведутся и вообще запись, считывания с БД?
← →
Ega23 © (2006-05-22 14:09) [9]
> Зачем мне шуршыть толстые книги если мне нужно просто перенести
> функциональность из строковой в БД-поиск?
>
> StringGrid он уже работает с БД запросами? Или в каком элементе
> БД запросы ведутся и вообще запись, считывания с БД?
Вот за этим и надо шурстить толстые книги. Чтобы такую ахинею не спрашивать.
← →
Sergey13 © (2006-05-22 14:11) [10]2 [8] WebSqlNeederr (22.05.06 14:08)
Зачем отвечающим переписывать сюда толстые книги по Делфи+БД? Не хочешь шуршать - не шурши.
← →
WebSqlNeederr (2006-05-22 14:11) [11]sniknik, а как можно посмотреть элементарный пример работы с БД? Например какой компонент кинуть на форму, как создать таблицу, пользователя, записис ...
← →
Плохиш © (2006-05-22 14:15) [12]
> WebSqlNeederr (22.05.06 14:11) [11]
> sniknik, а как можно посмотреть элементарный пример работы
> с БД? Например какой компонент кинуть на форму, как создать
> таблицу, пользователя, записис
Это надо пошуршать книжкой "Делфи для недочайников за 21 секунду"
← →
sniknik © (2006-05-22 14:22) [13]... без желание учить новое... да никак наверное. если передумаеш то есть примеры в дельфе, хелпе, справке по базам, и книгах некоторых.
только решить что именно будеш использовать... а то один элементарный пример для ADO только запутает при использовании DBExpress, /..... т.д. подходы весде разные.
← →
WebSqlNeederr (2006-05-22 14:33) [14]Что вы за люди? :)
Я то не против почитать, но всю книгу вычитывать у меня ее и нет да и времени тоже.
Вы подскажите какой окмпонент нужно кинуть на форму что бы БД добавилось, и какое именно MySQL есть а то я к нему уже привык ... Как добавить таблицу, пользователя, делать запросы ...
Это ж не сложно рассказать ...
← →
Ega23 © (2006-05-22 14:45) [15]
> Это ж не сложно рассказать ...
Это может занять несколько часов печатания. Ты мне оплатишь это время? Если да - готов всё "разжевать" с нуля. Нет - читай книгу и задавай КОНКРЕТНЫЙ вопрос.
← →
sniknik © (2006-05-22 14:50) [16]> Вы подскажите какой окмпонент нужно кинуть на форму что бы БД добавилось
этим не обойдешся, БД от одного компонентика не добавится, в дельфе вообще БД нет, есть связи с внешними... в общем надо всю идеологию обьяснять. долго, да и не нужно, в любой книге по базам уже есть, обьяснено.
> и какое именно MySQL есть а то я к нему уже привык
можно конектится через BDE, ADO, DBExpress, + нестандартные (не из поставки дельфей) специализированные компоненты.
кстати привычки дело нехорошее... сколько тут на форуме жалоб на MySQL... не грех и поменять. (на что, без знания задачи обсуждать безсмыссленно)
> Это ж не сложно рассказать ...
несложно это когда вариант ответа один, ну два, филосовские же вопросы типа о смысле жизни в обшем НЕОБЬЯСНИМЫ, каждый по своему понимает... ну у тебя не осмысле жизни, но тоже не один вариант ответа, заколебешся описывать.
← →
Desdechado © (2006-05-22 15:48) [17]в орешник
← →
mr.il © (2006-05-22 16:26) [18]А что, логин сильно большой (больше 20и символов) чтоб его хранить в мемо.
← →
novill (2006-05-22 16:32) [19]
WebSqlNeederr
не трожьте БД с такими запросами.
Пользуйте Tlist или сравнивайте числовые хеши login"ов. ))
← →
evvcom © (2006-05-23 09:07) [20]
> Я то не против почитать, но всю книгу вычитывать
А всю и не надо, только про БД.
> у меня ее и нет
Зайди к Подгорецкому (http://www.delphimaster.ru/cgi-bin/anketa.pl?id=1084969116) на сайт, там много разной литературы. Например, авторов Тейксейра и Пачеко.
> да и времени тоже.
Тогда лучше забей, сходи в пивнушку, пивка попей, оттянись по полной, а программирование забудь.
← →
ЮЮ © (2006-05-23 10:27) [21]
> Сейчас я их храню в memo и когда число логинов достигает
> 15-20 тыс то ощущаются оооочень большие тормоза. Если перенести
> хранение и поиск логинов на Базу Данных то от тормозов можно
> будет избавиться? Помогите как это реализовать с БД?
Перенеси хранение в тектовый файл. А то компьютер выключишь, Мемо и накроется.
В программе храни в отсортированном(Sorted = True) TStringList, LoadFromFile которого быстро загрузит его в память, IndexiOfString которого вполне должен летать на столь ничтожном списке, а не тормозить.
Отображать в Мемо вообще отображать смысла нет - надо доверять собственному коду.
← →
WebSqlNeederr (2006-05-25 15:48) [22]>>Перенеси хранение в тектовый файл. А то компьютер выключишь, Мемо и накроется.
Мда, ну у вас и представления о людях :) разумеется, что мемо загружает из текстового файла строки.
>>В программе храни в отсортированном(Sorted = True) TStringList, LoadFromFile которого быстро загрузит его в память, IndexiOfString которого вполне должен летать на столь ничтожном списке, а не тормозить.
Это вам так кажется. Когда число строк сравнительно небольшое (до 5 тыс.) то действительно без проблем все обходится, но когда приблежается к 20 тыс. то уже заметны тормоза. Вы сами подумайте скажем если на одну операцию сравнения логина (средний размер 6 символов) с другим будет уходить несколько десятков микросекунд то общая задерка уже будет десятая доля секунды - а это достаточно что бы создавались глюки ...
>>Отображать в Мемо вообще отображать смысла нет - надо доверять собственному коду.
А что в TStringList оно быстрее будет работать? Ведь Мемо это тот же стринглист только визуально еще отображает поля ... Или я не прав?
← →
Ega23 © (2006-05-25 16:04) [23]
>
> А что в TStringList оно быстрее будет работать? Ведь Мемо
> это тот же стринглист только визуально еще отображает поля
> ... Или я не прав?
вот из-за того, что отображает и будет работать медленнее.
← →
WebSqlNeederr (2006-05-25 16:56) [24]НАРОД!!!!
Ну очень прошу, кому не сложно, опишите порядок работы с MySQL в Делфи.
У меня есть база (дамп) в отдельном файле *.csv вот, теперь какие компоненты мне нужно привлечь в Делфи что бы считать с этого файла инфу. Еще, что бы работать с MySQL в Делфи то БД должна быть запущена?
← →
Виталий Панасенко (2006-05-25 17:23) [25]
> WebSqlNeederr (25.05.06 16:56) [24]
> Еще, что бы работать с MySQL в Делфи то БД должна быть запущена?
Прсто у тебя все запущенно по этому вопросу. к сожалению.. и к твоему сожалению в двух словах не расскажешь о работе с БД...
← →
Ega23 © (2006-05-25 17:24) [26]
> Ну очень прошу, кому не сложно, опишите порядок работы с
> MySQL в Делфи.
Это долго. Лучше книжку почитай.
← →
WebSqlNeederr (2006-05-25 17:27) [27]Можете дать ссылку где можно почитать в онлаин книгу по БД с Делфи с примерами реализации?
← →
WebSqlNeederr (2006-05-25 18:40) [28]Кх кх
← →
sniknik © (2006-05-25 20:25) [29]давно бы сам нашол...
и тебе же говорили, вариантов много, нет такого "БД с Делфи", есть отдельно БД и отдельно дельфи, в программе на дельфи только связь и управление БД (если говорить о клиент серверных, локальные/файловые есть движки которые можно в программу включить но это все одно не дельфи...)
посмотри тут http://podgoretsky.com/ , точно есть, и книги и примеры.
p.s. надеюсь к тому моменту как освоиш желание перебирать логины (брутфорс?) пропадет, а займешся полезным делом...
Страницы: 1 вся ветка
Форум: "Начинающим";
Текущий архив: 2006.06.11;
Скачать: [xml.tar.bz2];
Память: 0.53 MB
Время: 0.013 c