Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Как записать массив в поле ClientDataSet?

Ответить
Настройки темы
Delphi - Как записать массив в поле ClientDataSet?
ALI ALI вне форума

Пользователь


Сообщения: 70
Благодарности: 0

Профиль | Отправить PM | Цитировать


Доброго времени суток, господа! У меня есть маленькая проблемка. Я создаю динамически поля в ClientDataSet. И встает необходимость сделать кое-какие поля массивного типа (ftArray), чтобы в дальнейшем туда загонять одномерные массивы. Суть вопроса такова: как записывать массив в конкретную "ячейку"?

Код: Выделить весь код
  for i := 1 to number do                        // Создаю поле
    begin
      with CDS.FieldDefs.AddFieldDef do
        begin
          DataType := ftArray;
          Name := 'Dissection ' + IntToStr(i);
        end;
    end; 
  
  ...



  with CDS do                                    // Как вот здесь записать массив qi[i] в поле конкретной записи?
    begin
      Append;
      FieldByName('Dissection 1').Value := qi[i];    //????????????????????
      Post;
    end;

Отправлено: 17:47, 24-10-2008

 

Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


Если я правильно понял проблему, то должно выглядеть что-то типо такого:
Код: Выделить весь код
...
for i := 1 to number do                        
    begin
       str:='Dissection ' + IntToStr(i);
       with CDS do                                    
           begin
               Append;
               FieldByName(str).Value := qi[i];  
               Post;
           end;
   end;

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 02:01, 27-10-2008 | #2



Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети.

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.

ALI ALI вне форума Автор темы

Пользователь


Сообщения: 70
Благодарности: 0

Профиль | Отправить PM | Цитировать


Если бы все было так просто, то я бы здесь не задавал вопрос. Вот что мне выдает компилятор при попытке выполнить программу c Вашим кодом:
Цитата:
Debugger Exception Notification:
Project Groups.exe raised exception class EDatabaseError with message: 'Invalid value for field "Dissection 1". Process stopped. Use Step or Run to continue.
Кстати говоря, ранее я уже пытался сделать тоже самое.

Отправлено: 18:25, 27-10-2008 | #3


Аватара для detrin

Ветеран


Сообщения: 540
Благодарности: 42

Профиль | Отправить PM | Цитировать


В массиве qi какой тип данных?
Попробуйте изменить тип данных в этой строке - "DataType := ftArray;" на тот что хранится в массиве.

-------
Лучше ничего не делать, чем делать ничего.


Отправлено: 18:31, 30-10-2008 | #4

ALI ALI вне форума Автор темы

Пользователь


Сообщения: 70
Благодарности: 0

Профиль | Отправить PM | Цитировать


А я уже по-другому решил проблему: написал - "DataType := ftString", а дальше массив перевел в строку, после чего записал строку в "ячейку".

Отправлено: 11:24, 01-11-2008 | #5



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Delphi - Как записать массив в поле ClientDataSet?

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
Sharepoint - Как вставить имя пользователя в определённое поле maives Другие серверные продукты 0 09-11-2009 14:17
MSFT SQL Server - [решено] как разбить поле toro Программирование и базы данных 1 08-01-2009 02:38
как восстановить RAID массив? Turman Хочу все знать 8 18-08-2008 03:30
Java Script, как вставить текст в поле формы? maaxiim Вебмастеру 8 04-07-2008 16:46
как сделать поле посреди сайта с полосой прокрутки? Denis Shutka Вебмастеру 8 07-02-2005 15:26




 
Переход