Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.08.2014, 18:18   #1
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию ClientDataSet вывод инфы

Привет.

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Добавили поля
    ClientDataSet1.FieldDefs.Clear;
    ClientDataSet1.FieldDefs.Add('Name1', ftString, 20, False);
    ClientDataSet1.FieldDefs.Add('Name2', ftString, 20, False);

    // Создали набор данных
    ClientDataSet1.CreateDataSet();

    // сохраняем
    ClientDataSet1.SaveToFile('E:\delphi\!DataBase\db.cds');

    // назначаем
    ClientDataSet1.FileName:='E:\delphi\!DataBase\db.cds';

    // активируем
    ClientDataSet1.Active:=True;

    // Заполняем
    ClientDataSet1.Append();
    ClientDataSet1.FieldByName('Name1').Value := '1';
    ClientDataSet1.FieldByName('Name2').Value := '2';

    ShowMessage(?);
end;
Как достать инфу из определенной ячейки и вывести с помощью ShowMessage на экран?
bilibian вне форума Ответить с цитированием
Старый 23.08.2014, 18:22   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
ShowMessage(
 ClientDataSet1.FieldByName('Определенная ячейка по имени поля').AsString;
);
Код:
ShowMessage(
 ClientDataSet1.Fields[Номер ячейки в записи].AsString;
);
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 18:32   #3
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
procedure TForm1.Button1Click(Sender: TObject);
begin
  // Добавили поля
    ClientDataSet1.FieldDefs.Clear;
    ClientDataSet1.FieldDefs.Add('Name1', ftString, 20, False);
    ClientDataSet1.FieldDefs.Add('Name2', ftString, 20, False);

    // Создали набор данных
    ClientDataSet1.CreateDataSet();  //создается и активищируется пустой набор данных

    // сохраняем
    ClientDataSet1.SaveToFile('E:\delphi\!DataBase\db.cds');  //зачем пустой набор сохранять?
    // назначаем
    ClientDataSet1.FileName:='E:\delphi\!DataBase\db.cds';  //для чего?

    // активируем
    ClientDataSet1.Active:=True;  //это не надо, после CreateDataSet уже активен

    // Заполняем
    ClientDataSet1.Append();
    ClientDataSet1.FieldByName('Name1').Value := '1';
    ClientDataSet1.FieldByName('Name2').Value := '2';
    ClientDataSet1.Post;  //завершение создания записи
    ShowMessage(?); //это уже сказали
end;
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 23.08.2014, 19:36   #4
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Спасибо за помощь, но

Цитата:
Сообщение от Stilet Посмотреть сообщение
Код:
ShowMessage(
 ClientDataSet1.FieldByName('Определенная ячейка по имени поля').AsString;
);
Код:
ShowMessage(
 ClientDataSet1.Fields[Номер ячейки в записи].AsString;
);
Получаю данные только из выделенной строки, как делать выборку из любой строки? Например вытащить данные из нескольких ячеек.

Последний раз редактировалось bilibian; 23.08.2014 в 19:39.
bilibian вне форума Ответить с цитированием
Старый 23.08.2014, 19:50   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
 with ClientDataSet1 do begin
  First; MoveBy(Номер строки);
  ShowMessage(
    Fields[Номер колонки].AsString;
   );
 end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 20:29   #6
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Stilet, спасибо!

Для чего нужна эта строка?
Код:
ClientDataSet.first;
bilibian вне форума Ответить с цитированием
Старый 23.08.2014, 21:42   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

MoveBy() перемещается относительно текущей записи. Если хочешь абсолют, то приходится сначала становиться на первую запись, а уже от нее перемещаться.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 23.08.2014, 21:56   #8
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Stilet, понятно, спасибо за помощь!

А если мне, допустим, нужно вывести только те поля которые равны единице, то для этого нужно в цикле каждую строку перебирать и сравнивать с шаблоном или есть что то подобное как в mysql? Типа сразу извлекает только те, которые соответствуют условию.

Последний раз редактировалось Stilet; 25.08.2014 в 15:50.
bilibian вне форума Ответить с цитированием
Старый 25.08.2014, 15:53   #9
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Цитата:
А если мне, допустим, нужно вывести только те поля которые равны единице
Цыкель-цикель-мотацикель:
Код:
 with ClientDataSet1 do begin
  First; MoveBy(Номер строки);
  for i:=0 to FieldsCount-1 do
    if    (Fields[i].DataType in [ftInteger,ftLargeint,ftSmallint,ftWord]) 
    and (Fields[i].AsInteger=1)
    then   ShowMessage(Fields[i].AsString;);
 end;
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 25.08.2014, 17:30   #10
bilibian
Форумчанин
 
Регистрация: 21.01.2014
Сообщений: 389
По умолчанию

Stilet, спасибо за помощь!

Вместо единицы искал слово "New", сделал так:

Код:
with Form4.ClientDataSet1 do begin
  for G := 0 to RecordCount-1 do begin
    First;      // Переход на первую позицию
    MoveBy(G);  // Номер строки
        
    if Fields[1].AsString = 'New' then begin
      ShowMessage(Fields[2].AsString);
      Break;
    end;
  end;
end;
bilibian вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
вывод инфы о файлах mojohead C++ Builder 3 16.05.2011 07:53
clientdataset iliili БД в Delphi 1 21.03.2011 18:57
Clientdataset. D.O.G БД в Delphi 5 05.10.2010 13:40
Неработает вывод инфы HellMercenariess PHP 11 05.08.2009 18:48
Сохранение инфы. IVANSour БД в Delphi 2 23.01.2009 21:09