1. Акция на весь декабрь! Получай оплату х2 за уникальные статьи, объемом от 200 слов, если в заголовке темы и теле статьи присутствует слово Python
    Скрыть объявление

Работа с Tblobfield

Тема в разделе "Borland C++ Builder & Kylix", создана пользователем Nelson, 16 фев 2010.

  1. Nelson

    Nelson Гость

    Доброго времени суток!

    Столкнулся со следующей проблемой. Работаю на C++ builder 6 с базой paradox над приложением, которое умееет загружать своего формата файлы данных, таким образом заполняются blob-поля в базе, затем из базы производится чтение этих самых blob-полей(используется функция Locate) и выводятся графики на экран. Отлично работает. Появилась задача возможности загрузки графики из двух файлов (графики одного, потом второго). Никак не соображу как мне переписать код.
    У каждого файла есть номер(TripNum), который заносится в нужную таблицу в базе. При запуске приложения передаем номер в аргументах командной строки. Его использует функция Locate, она находит этот номер в базе и делает его текущим.. после этого все, что нужно, читается
    Теперь же надо передавать два аргумента с соответственно двумя номерами файлов. Надеялся меня спасет написание следующей функции (прошу прощения за выдранный код, но приложение очень большое, лучше я отвечу на дополнительные вопросы)

    Код (Text):
    void __fastcall TFormView::AssignBlobFields(TAxisValueMap* AxisValue){
    if (!FormMain->TableData->Locate("TripNum", ParamStr(3), TLocateOptions())) //TTable TableData
    throw Exception("Нет записи в таблице");
    AxisValue->BlobField[0] = FormMain->TableMapValue; /*из BlobField[0] я хотел бы читать первую часть графиков*/                                                                                //TTable TableMap
    if (ParamStr(2) == "Double"){ //хотим грузить два файла
    AxisValue->BlobCount = 2;
    if (!FormMain->TableData->Locate("TripNum", ParamStr(4), TLocateOptions()))
    throw Exception("Нет записи в таблице");
    AxisValue->BlobField[1] = FormMain->TableMapValue;/*из BlobField[1] я хотел бы читать вторую часть графиков*/
    }
    else{
    AxisValue->BlobCount = 1;
    AxisValue->BlobField[1] = NULL;
    }
    }
    Dataset у всех таблиц обший. Таблицы связаны по TripNum. Но этот код не работает как я хочу. В FormMain->TableMapValue данные действительно меняются с вызовом Locate на нужные, но проблема в том, что при присвоении BlobField[1] в BlobField[0] данные меняются на такие же.. видимо происходит из-за совпадения адресов... Никак не пойму как это можно обойти (или принципиально сделать что-нибудь другое)

    Буду признателен за любые советы по теме.
     
Загрузка...
Похожие Темы - Работа Tblobfield
  1. Andrey Kha
    Ответов:
    0
    Просмотров:
    15
  2. Hoasker
    Ответов:
    0
    Просмотров:
    63
  3. garri671
    Ответов:
    0
    Просмотров:
    48
  4. lelik200969
    Ответов:
    0
    Просмотров:
    49
  5. Kozolick
    Ответов:
    0
    Просмотров:
    134

Поделиться этой страницей