Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2

Модерирует : ShIvADeSt

ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

   

VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FRALX

Цитата:
ANYDAC

Не пользовался но код бегло просматривал. Написан качественно. Особенно понравилась реализация DatSet-тов - есть поддержка индексов, а это значит что поиск Locate и лукап поля можно заставить быстро работать ... По сравнению с kbmMemTable - гораздо стройнее реализация.

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 06:25 05-12-2006
hofa

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Посоветуйте пожалуйста какой-нибудь DBRadioGroup который бы заполнялся из DatSet.
То есть сколько записей в выборке столько и радиокнопок и подписи к ним брались бы из таблицы.
 
Заранее спасибо

Всего записей: 42 | Зарегистр. 09-10-2005 | Отправлено: 07:41 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Умные люди. Проблема. Не знал точно куда написать, форум криво работал или у меня инет. Вобщем вот что.
Я пишу базу данных на Borland Builder и использую компоненты interbase, а сами базы создаю в IbEXPERT. И вот проблема с первичными ключами((( Кинул Датамодуль как полагается, на него ibквери, упдейты и вот что использую при закрытии формы ввода параметров:
void __fastcall TUpdateProduct::FormClose(TObject *Sender,
      TCloseAction &Action)
{
    switch(ModalResult)
    {
        case mrOk:
            DataModule2->IBQuery_PRODUCT->ApplyUpdates();
            break;
 
        case mrCancel:
            DataModule2->IBQuery_PRODUCT->CancelUpdates();
            break;
    }
}
В билдере выскакивает ошибка примерно гласящая, что ID должно иметь значение.
Я в експерте сделал вроде и прототипы и триггеры и генераторы нужные(с 0 начинаются). В первой таблицей долго мучался, она всего и 2 полей
CREATE TABLE TYPES
(
  ID    INTEGER NOT NULL,
  NAME    VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите название типа'  NOT NULL,
CONSTRAINT PK_TYPES PRIMARY KEY (ID)
);
Это типа главная таблица, когда в нее добавлять пытался-не выходило, потом покопался чета в експерте и там ввел первое значение, генератор сдвинулся и все заработало.
Но есть еще и другая таблица, которая связана с ней по TYPEPROGRAM
 CREATE TABLE "PRODUCT"  
(
  ID    INTEGER NOT NULL,
  NAME    VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите название программы' NOT NULL,
  TYPEPROGRAM    INTEGER NOT NULL,
  MEMORYSIZE    INTEGER DEFAULT 0 NOT NULL,
  RAMSIZE    INTEGER DEFAULT 0 NOT NULL,
  COST    NUMERIC(15, 2) DEFAULT 0 NOT NULL,
  DATEOFBERN    INTEGER DEFAULT 1999 NOT NULL,
  FATHER    VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите произволителя' NOT NULL,
CONSTRAINT PK_PRODUCT PRIMARY KEY (ID)
);
И вопщем суть проблемы, кто может помочь, как заставить базу генерить первичные ключи самой, если используешь компонент IBUpdate
Заранее спасибо, думаю проблема распространенная и ответ будет дан)

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 13:46 05-12-2006
greenpc

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
копай в сторону  
id autoincrement primary key

Всего записей: 401 | Зарегистр. 18-04-2003 | Отправлено: 13:55 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
greenpc
так я при создании таблицы сразу там галочек наставил и в автоинкременте и в генераторах и в прототипах. Все скомпил, должно работать, а не пашет *cry*. Я уже не знаю в чем дело.

Цитата:
копай в сторону  
id autoincrement primary key

Если я не про это сейчас написал, то можно поподробнее где это все выкопать? Ну то есть примерно куда ткнуть в IBExpert.

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 14:10 05-12-2006 | Исправлено: makkonen, 14:13 05-12-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
Не надо в эксперта, надо сюда тыкать.
 

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 14:21 05-12-2006
sunduk4

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
текст запроса в IBUpdate в студию и триггера _BI  

Всего записей: 177 | Зарегистр. 03-04-2004 | Отправлено: 14:26 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
SET TERM !!;
CREATE TRIGGER "PRODUCT_BI" FOR "PRODUCT"  
ACTIVE BEFORE INSERT POSITION 0
AS
BEGIN
  IF (NEW.ID IS NULL) THEN
    NEW.ID = GEN_ID(GEN_PRODUCT_ID,1);
END !!
SET TERM ;!!
Вот триггер для таблицы PRODUCT, описанной ранее.
Вот то, что в упдейте сидит на инсерте.
insert into PRODUCT
  (ID, NAME, TYPEPROGRAM, MEMORYSIZE, RAMSIZE, COST, DATEOFBERN,  
FATHER)
values
  (:ID, :NAME, :TYPEPROGRAM, :MEMORYSIZE, :RAMSIZE, :COST, ATEOFBERN,  
   :FATHER)
Поле TYPEPROGRAM берется из первой таблицы, но это наверно не суть, один фиг все через DBEdit считывается...

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 14:33 05-12-2006
sunduk4

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
 
insert into PRODUCT  
  (ID,
..............
values  
  (:ID,
 
у тебя id то не заполняется. ты или инсерт без id делай, или перед постом руками генератор дергай и подставляй значение id.

Всего записей: 177 | Зарегистр. 03-04-2004 | Отправлено: 14:42 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sunduk4
Если из текста запроса в IBUpdate убрать поля ID, то таже ошибка((
Можно привести пример, как решить, потому как походу самому мне не  догадаться..
 
OXDBA
Цитата из статьи...

Цитата:
Конечно, триггер можно оставить, изменив лишь код  
IF (NEW.CLIENT_ID IS NULL) THEN  
   NEW.CLIENT_ID = GEN_ID(NEWID, 1);  
чтобы если никакое значение столбца CLIENT_ID при вставке записи из приложения не передано, то оно было сгенерировано автоматически.  
примечание: первая попытка перенести ответственность за автоматическую нумерацию столбца первичного ключа таблицы обычно проваливается из-за компонент доступа. Поскольку такой столбец объявлен как not null, и компоненты автоматически считывают характеристики столбцов, у TField будет установлено в True свойство Required. Это не дает возможности оставить столбец "пустым" при передаче с клиента на сервер. Установите свойство Required у такого столбца в False.

Чета я тут не понял малость. Где находится это поле TField, у каких компонент?

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 14:50 05-12-2006 | Исправлено: makkonen, 14:54 05-12-2006
sunduk4

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
пользуй датасет вместо IBUpdate. и будет и квери и апдейт в одном флаконе.

Всего записей: 177 | Зарегистр. 03-04-2004 | Отправлено: 14:58 05-12-2006 | Исправлено: sunduk4, 14:58 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
sunduk4
Очень нужно именно с квери и апдейтом...

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 15:05 05-12-2006
OXDBA

Full Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
makkonen
В классическом случае, для работы с DBAware компонентами используется DataSet, в случае с IBX это TIBDataSet, вот у него эти самы TField и есть. А вот в чем скрытый смысл использовать IBQuery + IBUpdateSql, мне не ясно.
А почему возникает ошибка см. пост sunduk4

Цитата:
перед постом руками генератор дергай и подставляй значение id.

 

Всего записей: 426 | Зарегистр. 19-01-2005 | Отправлено: 15:06 05-12-2006
makkonen



Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Ух, кароче я сделал. Решение проблемы такое:
Если сделаны генераторы и триггеры, то у квери есть свойство  GeneratorField, вот с ним и надо работать и все пашет тогда. Всем спасибо за внимание.
Хотелось бы еще спросить...
1) В компоненте DBEdit я бы хотел, чтобы отображались значение по умолчанию прямо из базы данных, которые у меня в ней определены например NAME VARCHAR(200) CHARACTER SET WIN1251 DEFAULT 'Введите название программы' NOT NULL. Какие-нибудь свойства еть для этого?
2) Я добавляю в таблицу оператором insert(). При нажатии на добавить, у меня он и выполняется, то есть, если курсор оказался где-то в середине DBGrid'a, то там пустое поле и образуется. Но затем поидее запись должна добавиться вниз(вроде бы). А у меня то в середине, то сверху, то внизу. Вопрос. Есть ли свойства, отвечающие за то, чтобы это все всегда внизу было? И есть ли свойство, кот сортирует DBGrid по значению, а то у меня все вразнобив((

Всего записей: 79 | Зарегистр. 16-10-2006 | Отправлено: 15:11 05-12-2006 | Исправлено: makkonen, 15:46 05-12-2006
DrLo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Прошу высказаться по поводу полезности испоьзования SDAC при работе с MS SQL 2000-2005 по сравнению со стандартным ADO или любыми другими вариантами. Интересует производительность, удобство в работе, безглючность (если такое бывает )
Кто с чем работает с MS SQL? И кто доволен своим выбором?
Думаю Ваше мнение будет полезно не мне одному...

Всего записей: 257 | Зарегистр. 18-03-2003 | Отправлено: 22:35 05-12-2006
vidic777



Advanced Member
Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
Добрый вечер  
 
Скажите а не сталкивался ли кто с проблемой в TMS, если несколько раз в любом StyleController-е переключить стиль, то подвисает BDS 2006. Как с подобным можно бороться  ?  
Спасибо заранее.

Всего записей: 1313 | Зарегистр. 16-02-2005 | Отправлено: 23:05 05-12-2006
FRALX

Junior Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
Народ а не подскажите ли бесплатную библиотеку для работы с XML.  
На данный момент смотрел SimpleXML  и NativeXML.
SimpeXML не подходит  .  
NativeXML во всем устраивает кроме платности.
 
Добавлено:
DrLo
Пользовал в свое время SDAC, задачи правда были не очень сложные.  
Впечатления не плохие, скорось и удобство довольно приличные.
Ну а глюки наличествовали но легко обходились. Возможно щас старые глюки исправлены
новые добавлены  

Всего записей: 110 | Зарегистр. 15-12-2005 | Отправлено: 23:31 05-12-2006
DrLo



Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FRALX

Цитата:
NativeXML во всем устраивает кроме платности

Так в Варезнике и на просторах китайского инета SimDesign.NativeXml.v2.20 в сорсах пробегал... Пользуйся, коль всё устаивает!!!

Всего записей: 257 | Зарегистр. 18-03-2003 | Отправлено: 03:40 06-12-2006
VadimLou



Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
FRALX

Цитата:
бесплатную библиотеку для работы с XML

msxml бесплатен но использовтать есть смысл только при необходимости парсить разные xml  с помощью xpath (что то наподобие фильтров)

Всего записей: 702 | Зарегистр. 22-07-2004 | Отправлено: 04:08 06-12-2006
Figaro2000

Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
OXDBA

Цитата:
В классическом случае, для работы с DBAware компонентами используется DataSet, в случае с IBX это TIBDataSet, вот у него эти самы TField и есть. А вот в чем скрытый смысл использовать IBQuery + IBUpdateSql, мне не ясно.  

чисто исторические причины - изначально была пара классов IBQuery + IBUpdateSql, а потом для удобства объединили в один класс.
 
DrLo

Цитата:
Кто с чем работает с MS SQL?  

Трехзвенка - SDAC3 + kbmMW
 
FRALX

Цитата:
NativeXML во всем устраивает кроме платности.

Согласен, хорошая вещь. Жаль только, что обновляется редко.
 
 
 

Всего записей: 245 | Зарегистр. 24-09-2005 | Отправлено: 09:43 06-12-2006
   

Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106

Компьютерный форум Ru.Board » Компьютеры » Прикладное программирование » Вопросы по компонентам для Delphi, C++ Builder 2
ShIvADeSt (20-06-2007 07:33): http://forum.ru-board.com/topic.cgi?forum=33&topic=8529


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru