Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.06.11;
Скачать: CL | DM;

Вниз

У меня есть поиск логинов по 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;
Скачать: CL | DM;

Наверх




Память: 0.55 MB
Время: 0.04 c
2-1148301897
adsdf
2006-05-22 16:44
2006.06.11
Как сохранить TStringList в Файл в сети?


15-1147769851
Ytrnj
2006-05-16 12:57
2006.06.11
Оракл бесплатный только для разработчиков


2-1148385586
skandri
2006-05-23 15:59
2006.06.11
Вырезание части bmp


15-1147724915
Суслик
2006-05-16 00:28
2006.06.11
Тип decimal в Delphi.


2-1148533266
Tempora
2006-05-25 09:01
2006.06.11
Вопрос по стандартному компоненту TrayIcon