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

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

Вернуться   Форум программистов > Delphi программирование > БД в Delphi
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 31.05.2011, 00:34   #1
bazanin
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 22
По умолчанию Fibplus и двумерные массивы

Здравствуйте столкнулся с проблемой записи 2х мерного массива(variant) в бд interbase:

Код:
procedure TForm5.Button2Click(Sender: TObject);
var
i,j:integer;
s:string;
begin
mayar:=VarArrayCreate([0,10,0,10], varinteger);
for i:=0 to 10 do
 for j:=0 to 10 do
 if StringGrid1.Cells[i,j]='' then
  mayar[i,j]:=0
 else
  mayar[i,j]:=StrToInt(StringGrid1.Cells[i,j]);
 pFIBQuery1.Close;
 pFIBQuery1.SQL.Clear;
 s:= 'INSERT INTO FASE2D (MYARRAY,FIO) VALUES (:myarray,:FIO );';
 pFIBQuery1.SQL.Add(s);
 pFIBQuery1.Params[0].Asvariant:=mayar;
 pFIBQuery1.Params[1].AsString:=edit1.Text;
 pFIBQuery1.Prepare;
 pFIBQuery1.ExecQuery;
end;
запись проходит но!
Код:
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
0 0 0 0 0 0 0 0 0 0 0
хотя проверяя массив там все что введено в stringgrid



___________
Код нужно оформлять по правилам:
тегом [CODE]..[/СODE] (это кнопочка с решёточкой #)
Не забывайте об этом!
Модератор.

Последний раз редактировалось Serge_Bliznykov; 31.05.2011 в 08:20.
bazanin вне форума Ответить с цитированием
Старый 31.05.2011, 08:25   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

1) что Вы за нули привели? это содержимое таблицы FASE2D ? тогда почему оно в виде матрицы?

2) выложите исходники проекта - иначе гадать можно до бесконечности!
(ну, например, забываете коммит сделать)

3) Вы не забыли, что в StringGrid1.Cells указывается сначала номер СТОЛБЦА, а потом номер строки?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 31.05.2011, 10:33   #3
bazanin
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 22
По умолчанию

Нули это содержание поля myarray. Вот в чем вся и загвоздка, это поле массив [0..10,0..10]

Последний раз редактировалось bazanin; 31.05.2011 в 12:29.
bazanin вне форума Ответить с цитированием
Старый 31.05.2011, 12:29   #4
bazanin
Пользователь
 
Регистрация: 23.07.2009
Сообщений: 22
По умолчанию

Все заработало через dataset
Код:
pFIBTransaction1.StartTransaction;
   pFIBDataSet1.Insert;
   pFIBDataSet1.FBN('поле массив').Value:=mayar;
   pFIBDataSet1.FBN('текст').asstring:=edit1.Text;
   pFIBDataSet1.Prepare;
   pFIBDataSet1.Post;
  pFIBTransaction1.Commit;
  pFIBDataSet1.Close;
bazanin вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
двумерные массивы mongolia Помощь студентам 3 14.04.2011 17:37
Двумерные массивы 1Dima Помощь студентам 2 27.03.2011 22:01
Двумерные массивы. Vadim123456 Помощь студентам 2 18.10.2010 19:11
двумерные массивы в Си osichev Помощь студентам 1 04.06.2009 18:00
Двумерные массивы!!!!! avp91 Паскаль, Turbo Pascal, PascalABC.NET 2 04.06.2009 16:36