Авторизация

Логин: Пароль:
Регистрация Забыли свой пароль?

Работа с ADO

Страницы: 1
Работа с ADO, все о работе с ADO
В этой ветке будет выкладываться вся информация по работе с ADO в Delphi
Первое что хотел описать это сложение столбцов и нахождение максимума и минимума в столбце...
В принципе это подходит ко всем технологиям бд, но я постоянно работаю только с ado...
Можно было бы использовать SQL, но есть и другие способы...

Нахождение суммы столбца:


Код
 
begin
 s := 0;
 ADOTable1.First;
   while not ADOTable1.EOF do
    begin
     s := s + ADOTable1.FieldByName('Rashod').AsFloat;
     ADOTable1.Next;
   end;
   Edit2.Text:=FloatToStr(s);
end;
 
Изменено: rash - 13.03.2010 17:36:57
в мертвом теле здоровый дух
Нахождение максимального числа в столбце:
Код
   ADOTable1.IndexFieldNames := 'Rashod DESC';
 
в мертвом теле здоровый дух
Поиск по базе данных с использованием ADOQuery
Код
ADOQuery1.SQL.Text := 'SELECT * FROM таблица WHERE поле="значение"';
ADOQuery1.Open;
if ADOQuery1.RecordCount = 0 then
  ShowMessage('ничего не найдено');
else
  ShowMessage('найдено '+IntToStr(ADOQuery1.RecordCount)+' записей');
ADOQuery1.Close;
Изменено: a9d - 14.03.2010 01:37:39
пока ты не доволен жизнью - она проходит...
Вообще, расскажи, ADO чем-то помогает при работе с БД? То есть, это какой-то продвинутый способ доступа к данным или просто основной способ в Delphi? Привычнее работать просто с SQL запросами
Accende lumen sensibus, infude ainorem corbidus!
это просто способ доступа, к локальным бд он подходит на мой взгляд лучше всего...
в мертвом теле здоровый дух
а как в бд добавить картинку или музыку, ну впрочем любой медиафайл?
и еще такой вопросик, у меня в бд в таблицах находятся числа, как мне к примеру получить сумму чисел в каждой строке?
Цитата
asterix пишет:
а как в бд добавить картинку или музыку, ну впрочем любой медиафайл?

Насколько помню, для этого есть тип BLOB. Но вообще их обычно просто хранят отдельно
Изменено: motorway11 - 21.03.2010 16:58:26
Accende lumen sensibus, infude ainorem corbidus!
Для сумм существуют функции БД. А можно и просто с помощью серверного скрипта сделать
Изменено: motorway11 - 21.03.2010 16:58:13
Accende lumen sensibus, infude ainorem corbidus!
Цитата
motorway11 пишет:
Цитата
asterix пишет:
а как в бд добавить картинку или музыку, ну впрочем любой медиафайл?

Насколько помню, для этого есть тип BLOB. Но вообще их обычно просто хранят отдельно

вообще зависит и от того как ты создаешь базу к примеру если через acces то там можно выставить тип поля: "поле объекта OLE", в таком случае есе можно хранить и в самой базе...
в мертвом теле здоровый дух
Цитата
asterix пишет:
и еще такой вопросик, у меня в бд в таблицах находятся числа, как мне к примеру получить сумму чисел в каждой строке?

создаешь еще одно поле и вызываешь поцедуру calcfields
Код
procedure TForml.TablelCalcFields(DataSet: TDataSet) 

; begin 

with Tablel do 

TabielCalcFieldl.Value := Fields[0].Value + Fields[1].Value; 

 with Queryl do  

begin 

Params[0].AsInteger := Tablel.Fields[0].Aslnteger; 

 Open; 

TabielCalcFieldl.Value := Fields[0].AsString;  

Close; 

 end; 

 end;
в мертвом теле здоровый дух
еще одно но, вычисляемые поля по своей сути замедляют работу набора данных, так как при редактировании набора данных у тебя все заново вычисляется, чтобы небыло лишних обращений к методу OnCalcFields, нужно использовать свойство
Код
AutoCaicFieids := False
в мертвом теле здоровый дух
Вопрос уже неоднократно обсуждался на разных форумах но всё же...
Как отобразить ход выполнения запроса (MS SQL Server 2000)?
У меня вообще задача следующая... Делаю програмку для автоматического бэкапа баз данных.
Команду бэкапа выполняю через ADOConnection и нужно как-то сообщать о ходе выполнения...
На разных форумах пишут что это вообще не возможно... Но тогда интересен другой вопрос... Может кто знает как это реализовано в Enterprise Manager ?
Изменено: Valera - 03.06.2010 15:30:05
Если там это делается какими-то порциями, то можно после каждых скольких-то процентов сохранять текущее состояние, если получится.
Также есть идея, хоть я и не профи в этом, разделить на 2 процесса, и из 1-го смотреть, завершен ли второй (по какому-то признаку), и писать текущее состояние.
Вам нужно что-то вроде отображения процентов?
Accende lumen sensibus, infude ainorem corbidus!
Код
Если там это делается какими-то порциями, то можно после каждых скольких-то процентов сохранять текущее состояние

Вообще там всё делается через стандартную процедуру BACKUP DATABASE...
А прогресс отображается в Progressbar...
Цитата
rash пишет:
В этой ветке будет выкладываться вся информация по работе с ADO в Delphi
Первое что хотел описать это сложение столбцов и нахождение максимума и минимума в столбце...
В принципе это подходит ко всем технологиям бд, но я постоянно работаю только с ado...
Можно было бы использовать SQL, но есть и другие способы...

Нахождение суммы столбца:


Код
 
begin
 s := 0;
 ADOTable1.First;
   while not ADOTable1.EOF do
    begin
     s := s + ADOTable1.FieldByName('Rashod').AsFloat;
     ADOTable1.Next;
   end;
   Edit2.Text:=FloatToStr(s);
end;
 


На самом деле все это сумма количество и прочее надо перекладывать на sql сервак. пусть трудится. Иначе на кой черт это все хранить в базе данных - лишняя трудоемкость, потеря в скорости. Если у вас приложение имеет файл северную архитектуру, может быть вам имеет смысл не ввязываться в адо, а посмотреть в сторону более простого решения на paradox (TTable) решениях, либо написать хранилише самому(вполне возможно лишняя трудоемкость, с лихвой покроется быстродействием работы программы)
Кто-нибудь имел опыт работы с ADO MD? Поделитесь, для каких задач оно может быть эффектно применено.
Accende lumen sensibus, infude ainorem corbidus!
Я вот например вообще первый раз узнал о существовании ADO MD smile:)
Я просто смотрю всякую информацию по работе с многомерными данными, и там перечислялись разные способы работы с ней - MDX, ADO MD и т.п.
Accende lumen sensibus, infude ainorem corbidus!
Страницы: 1
Читают тему (гостей: 1, пользователей: 0, из них скрытых: 0)