Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.04.08;
Скачать: CL | DM;

Вниз

InterBase SQL и память   Найти похожие ветки 

 
Castlevania   (2007-01-18 12:42) [0]

Мне нужно на Delphi сделать ф-цию которая может возвращать массив значений из БД InterBase, но попытка тупо запихнуть данные в массив не прокатывает - при каждом SQL.Next блок памяти заменяется на следующий  (он один и тот же) и в результате все пункты массива содержат одинаковые данные.

Думал в сторону копирования блоков памяти, но, к сожалению, пользоваться этим не умею.

Подскажите, пожалуйста, варианты!


 
Johnmen   (2007-01-18 12:47) [1]

Массив "блоков памяти".


 
Castlevania   (2007-01-18 12:49) [2]

> к сожалению, пользоваться этим не умею.
В том-то и дело. Неужели нет стандартного решения?


 
ЮЮ ©   (2007-01-18 12:50) [3]


> но попытка тупо запихнуть данные в массив не прокатывает


> Подскажите, пожалуйста, варианты!


Сначала свой покажи


 
Castlevania   (2007-01-18 12:56) [4]

Ну в данный момент со своим проблема - дома он. Но попробую воспроизвести:

type TFetchData=record
 Count: Integer;
 Data: Array of TIBXSQLDA;
end;

function Fetch(const Query: String): TFetchData;
begin
 SetLength(Result.Data, 65535); // больше всё равно не надо
 I := 0;
 with ExecQuery(ibSQL, ibTrn) {это моя ф-ция} do while not ibSQL.eof do begin
   Result.Data[I] := ibSQL.Current;
   Inc(Result);
 end;
 FinalizeSQL(ibSQL, ibTrn);
end;

примерно вот так.


 
Castlevania   (2007-01-18 12:58) [5]

То есть, простите, Result := 0; Inc(Result); :)


 
ЮЮ ©   (2007-01-18 12:58) [6]

i в цикле изменять бы не мешало


 
ЮЮ ©   (2007-01-18 13:00) [7]


> i в цикле изменять бы не мешало


Тьфу ты, увидел SetLength, подумал, что динамический массив :)


 
Castlevania   (2007-01-18 13:03) [8]

ЮЮ
да фиг с ним с массивом. такой вариант не работает!


 
ЮЮ ©   (2007-01-18 13:11) [9]

Если  ibSQL.Current нечто типа TIBXSQLDA, то и сохранять надо то, что этот объект содержит, ты же сохраняешь ссылку, а объект у ibSQL для этих целей используется один и тот же.

Чем сам DataSet не устраивает как "хранилище данных" ? Цель твоих действий?


 
Castlevania   (2007-01-18 13:15) [10]

эээ.. DataSet, простите? Я в этом деле начинающий, ещё не всё изучил. А цель - возвращать данные куда-нибудь, ну типа mysql_fetch_array в php

Сохранять надо содержимое - я знаю. Но как? Вот вопрос!


 
Johnmen   (2007-01-18 13:41) [11]


> Inc(Result);

Это что значит?

> while not ibSQL.eof

Где Next?

PS
Если ты начинающий, м.б. не стОит лезть во внутреннюю кухню компонент прямого доступа (IBX). И сначала изучить общие принципы работы с БД?


 
Castlevania   (2007-01-18 14:02) [12]

> Где Next?
Там же, где и Current. Написать забыл

> Inc(Result)
А как ты ячейку массива ещё сдвинешь в данном случае?

PS Мне сейчас не до изучения общих принципов, через 10 дней проект сдавать.


 
Johnmen   (2007-01-18 14:06) [13]


> А как ты ячейку массива ещё сдвинешь в данном случае?

Какого массива? Куда сдвину?

>  Мне сейчас не до изучения общих принципов, через 10 дней
> проект сдавать.

А-а-а... Понятно. Вопросы отменяю.


 
unknown ©   (2007-01-18 14:08) [14]


> Castlevania   (18.01.07 14:02) [12]
> PS Мне сейчас не до изучения общих принципов, через 10 дней
> проект сдавать.

LOL :))))


 
Sergey13 ©   (2007-01-18 14:08) [15]

> [12] Castlevania   (18.01.07 14:02)

> Мне нужно на Delphi сделать ф-цию которая может возвращать
> массив значений из БД InterBase

А что за данные, которые ИБ должен отдать? Окуда они? Как формируются?

> PS Мне сейчас не до изучения общих принципов, через 10 дней
> проект сдавать.

Похоже, если бы ты их изучил, ты бы уже проект сдал.


 
Anatoly Podgoretsky   (2007-01-18 20:29) [16]

> Sergey13  (18.01.2007 14:08:15)  [15]

> если бы ты их изучил, ты бы уже проект сдал.

Сомнительно



Страницы: 1 вся ветка

Текущий архив: 2007.04.08;
Скачать: CL | DM;

Наверх




Память: 0.5 MB
Время: 0.033 c
15-1174047042
Gorlum
2007-03-16 15:10
2007.04.08
Ну раз "Прочее", отважусь спросить...:)


1-1171362268
StriderMan
2007-02-13 13:24
2007.04.08
Редактор скриптов JScript


15-1173768840
ДмитрийЛ.
2007-03-13 09:54
2007.04.08
Проблема с выбором СУБД


15-1173821076
mike888777666
2007-03-14 00:24
2007.04.08
декомпиляция


15-1173820327
Gamer
2007-03-14 00:12
2007.04.08
открыть занятый недокачанный файл jpg