Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Начинающим";
Текущий архив: 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
2-1148674496
ZV
2006-05-27 00:14
2006.06.11
SOUND


1-1146815899
Layner
2006-05-05 11:58
2006.06.11
Поиск всех возможных комбинаций


2-1148557809
tvv
2006-05-25 15:50
2006.06.11
Работа с DLL


2-1148306837
Tempora
2006-05-22 18:07
2006.06.11
Как проверить существует ли поток...


2-1148457860
Lida
2006-05-24 12:04
2006.06.11
Отчеты





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский