Всем привет, сейчас не так уж и много времени разбираться с какими-то темами, примерами, так что пока не очень часто пишу в блог, хотя время найти могу, для того, чтобы помочь разобраться читателям моего блога с некоторыми вопросами, которые они мне задают в комментариях или на email. Вот на этот раз вопрос был по работе с БД, а именно, цитата:
я хочу несколько записей в таблице, чтобы потом производить с ними какие-либо действия. Совершенно неважно, что потом с ними буду делать, печатать или удалять, важно то, что мне их надо как-то запомнить объясните, пожалуйста самый простой вариант
Ну так давайте тогда и приступим к рассмотрению данного вопроса. Самый простой способ, есть конечно и не один, но я расскажу два простых способа. Давайте создадим для начала какую-нибудь БД и в ней создадим таблицу, СУБД можно выбрать любую, так как данный метод будет работать почти со всеми СУБД, которые будут использовать технологию ADO для подключения, да и BDE, тоже должно работать. Я выбрал СУБД MS Access.
Далее создал БД, в ней таблицу под именем Student, следующей структуры:
После этого сохраняем нашу БД и создаем проект в Delphi. На форму устанавливаем следующие компоненты:
- TADOQuery
- TADOConnection
- TDBGrid
- TDataSource
- TButton
Далее делаем подключение к нашей БД, как это делать, мы рассматривали в данной статье . После этого, как у нас всего готова, необходимо сделать настройки некоторых компонентов, а это — TDBGrid. А точнее, нам необходимо установить свойство, чтобы можно было выделять несколько записей, которые отображаются в TDBGrid. Для этого выделяем компонент TDBGrid и в свойстве Options-dgMultiSelect (в более ранних версиях Delphi, возможно будет goMultiSelect) устанавливаем его в True. Теперь записи можно выделять, при нажатии клавиш Ctrl и/или Shift.
Все, теперь нам необходимо данные строки обработать (которые выделены), а потом с ними можно делать все, что захотим. Вот несколько самых простых способов, с помощью которых можно решить данный вопрос, на событие OnClick нашей кнопки пишем следующий код:
procedure TForm1.btn1Click(Sender: TObject);
var
I:Integer;
begin
try
qry1.First;
for I := 0 to dbgrd1.SelectedRows.Count-1 do
begin
qry1.Bookmark:=dbgrd1.SelectedRows[i];
ShowMessage(qry1.FieldByName('FIO').AsVariant);
end;
finally
//-//-//-//-//-//-//-//-//
end;
end;
С помощью свойства Bookmark, мы устанавливаем указатель в самой таблице на закладку, запись, которой соответствует выделенная запись в TDBGrid, при этом организовываем цикл, по всем выделенным записям. Тоже самое можно организовать следующим образом:
procedure TForm1.btn1Click(Sender: TObject);
var
I:Integer;
begin
try
qry1.First;
for I := 0 to dbgrd1.SelectedRows.Count-1 do
begin
qry1.GotoBookmark(dbgrd1.SelectedRows[i]);
ShowMessage(qry1.FieldByName('FIO').AsVariant);
end;
finally
//-//-//-//-//-//-//-//-//
end;
end;
Здесь все, тоже самое, только указатель мы устанавливаем с помощью процедуры GotoBookmark. Вот и все, теперь эти записи можно получать в цикле, и что хотите, то с ними и делайте.
Ну и сразу отвечу на второй вопрос, цитата:
acces су поставил пароль но Microsoft jet 4.0 не хочет подключится
подробно объясните, пожалуйста и программно как можно обращаться с ним
Что касается установки пароля на БД MS Access, то его можно установить, как программно, так и при помощи MS Access. Устанавливаете пароль в MS Access, свойство компонента TADOConnection - LoginPromt устанавливаем в False, при этом в свойство Mode должно быть установлено в ReadWrite, так как БД, должна открываться в монопольном режиме, пароль можно также передавать и своим диалоговым окном в свойство ConnectionString компонента TADOConnection. Внимательно просмотрите строку подключения ConnectionString и само диалоговое окно подключения, Вы сами все поймете, куда и как вводить пароль.
Все, что рассмотрели в данной статье с помощью компонента TADOQuery, можно сделать и с помощью компонента TADOTable
В настоящее время очень популярно иметь недвижимость, особенно в курортных городах и уголках Земли. Так как, Вы в свободное время, можете спокойно приехать со своей семьей и близкими отдохнуть, например Вы можете купить недвижимость в калабрии и проводить очень прекрасные дни там, тем более приобретаете по очень выгодным ценам, что очень важно в настоящее время.
Похожие записи
Метки: Access, Ado, Bookmark, GotoBookmark, MS Access, TADOConnection, TADOQuery, TDBGrid, БД, СУБД
Респект автору за статейку. Работа с базами данных не так сложна ка много в ней всяких нюансов, по этому ваше решение как по мне очень компактное и несложное как для новачка.
спасибо, рад что помогло
я тока что изучаю делфи (ембаркадеро делфи хе)
и у меня проблемы
задача в том что в делфи на любую компонент вытащить текстовый файл и каждое слова в этом файле записывать отдельно на каждую строку выбранного компонента
тоесть есть текстовый файл 200 слов и вызываем его нажатие на баттон и 200 слов на 200 строке отдельно в мемо (например)
Текст на текстовым файле: Меня зовут Нурик. Помогите пожалуйста!!!!
Результат на мемо:
меня
зовут
нурик
помогите
пожалуйста
Заранее спасибо
необходимо в каждой строке искать пробелы. Считываем строку до пробела и проверяем дальше, если есть еще пробел, то считываем еще, и так до конца строки
str:='';
for i:=1 to length(s) do
begin
if s[i]<>' ' then
begin
str:=str+s[i];
end;
if s[i]=' ' then
begin
Memo1.Lines.Add(str);
str:='';
end;
end;
Спасибо за Ваши статьи! Только не могу понять, что такое qry? это компонент какой-то или что такое?
незачто, да — это компонент ADOQuery
Да… А блог то помер почти год назад. последняя статья опубликована
«Andrey Опубликовано: 26 Октябрь 2014″ А так классно материал разъяснялся. ((( Очень уж мне хочется узнать как же все таки правильно
Создавать TDBTree с Возможностью установки чекбоксов. Если все таки есть еще шанс то распишите эту тему в статье.