Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Базы";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Вниз

Как редактировать поля таблицы в IB...?   Найти похожие ветки 

 
iusupp   (2003-04-14 23:20) [0]

Как редактировать поля таблицы IB при запущенной проге в DBGrid...?
Типа как в Парадокс Edit:= True...?


 
Наталия   (2003-04-15 06:11) [1]

1) Если пользуешься IBTable, то "Типа как в Парадокс" и редактируй
2) IBQuery+IBUpdateSQL
3) IBDataSet


 
Соловьев   (2003-04-15 09:25) [2]


> Типа как в Парадокс Edit:= True...?

это как?


 
iusupp   (2003-04-15 18:48) [3]

Наталия ©
IBTable не использую...

IBDatabase1
IBTransaction1
IBDataSet1
IBQuery2
DataSource2
DBGrid1

И всё... и база IBEXspert


 
kravchuk   (2003-04-15 19:00) [4]

в смысле перевести в режим редактирования? TDataSet.Edit ?


 
iusupp   (2003-04-15 19:40) [5]

kravchuk ©
Точнее не бывает...


 
Zacho   (2003-04-15 22:22) [6]

Ну а в чем проблема ? Наталья тебе правильно ответила. Если не понял - опиши свои затруднения конкретнее, с телепатами сейчас напряженка :-)
P.S. Извени, но твой пост > iusupp © (15.04.03 18:48) - бред. Не обижайся, но почитай хоть что-нибудь о работе с БД в Дельфи и о IB.


 
iusupp   (2003-04-17 01:01) [7]

Zacho ©
Не работает...

IBDataSet1.Active:= False;
IBDataSet1.selectsql.Text:="SELECT TARIF,NALOG1,dateis,subjectid from ORDERS" ;
IBDataSet1.modifysql.Text:="update orders Set TARIF=:TARIF,NALOG1=:NALOG1 where orders.DATEIS=:OLD_DATEIS and orders.SUBJECTID=:OLD_SUBJECTID" ;
IBDataSet1.InsertSQL.Text:="insert into ORDERS (TARIF,NALOG1) values (:TARIF,:NALOG1)";
IBDataSet1.Active:= True;


 
Zacho   (2003-04-18 00:05) [8]

Как именно не работает ? Выдает ошибку ? Какую ? И что в твоей таблице первичный ключ, и как он формируется ? В общем напиши все подробнее, если хочешь получить полезный тебе ответ.
И IBExpert - это не база, а все лишь инструмент для работы с IB. К работе с БД в Дельфи никакого отношения не имеет.


 
Johnmen   (2003-04-18 00:16) [9]

Конечно не будет ! Что такое OLD_DATEIS ????? Откуда взялось ?
Забудь про идеологию применения объекта типа TUpdateSQL !
А еще лучше и надежнее - читай хелп и иди на ibase.ru


 
Zacho   (2003-04-18 00:55) [10]


> Johnmen © (18.04.03 00:16)
> Конечно не будет ! Что такое OLD_DATEIS ?????

Вот как раз это для TIBDataSet вполне нормально :) Вот огрызок из моего текущего проекта:
SelectSql: SELECT bla-bla, ACC_DATE,..
ModifySql: UPDATE bla-bla ... WHERE (ID_OS = ?ID_OS) AND (ID_OPERATION = ?ID_OPERATION) AND (ACC_DATE = ? OLD_ACC_DATE)
Префикс OLD_ поддерживается еще с FIBC. Да и как иначе, если первичный ключ может редактироваться ?
В посте iusupp © (17.04.03 01:01) у меня вызывает подозрение InsertSql. Но, за недостатком информации, подозрение не есть уверенность, можно и ошибиться :-)


 
Johnmen   (2003-04-18 09:33) [11]

>Zacho © (18.04.03 00:55)

Если это так, то я этого не знал, т.к. никогда не приходило в голову редактировать PK ! (Что само по себе (возможность ред-ия PK) наводит на мысли, что не все в порядке...)
:^)))))))


 
Zacho   (2003-04-18 09:41) [12]


> Johnmen © (18.04.03 09:33)

От задачи зависит. У меня - все в порядке :-), но ПК (точнее одно поле ПК) может (и даже должно) редактироваться. А еще есть люди, использующие естественные ПК :-)


 
Johnmen   (2003-04-18 09:46) [13]

>Zacho © (18.04.03 09:41)
>От задачи зависит

Пример, пожалуйста.

>но ПК (точнее одно поле ПК) может (и даже должно) редактироваться

Не должно ! А впрочем давай аргументы...


 
Жук   (2003-04-18 09:48) [14]

>iusupp © (17.04.03 01:01)
Не очень понятно, зачем динамически создавать SQL for Insert and Modifi.


 
Zacho   (2003-04-18 10:28) [15]


> Johnmen © (18.04.03 09:46)

Ну вот пример. Довольно простая системка по амортизации основных фондов. Есть таблица OS в которой содержатся постоянные атрибуты основных средств (название, инв. номер и т.п.) И есть таблица движения ОС, т.е. история атрибутов, могущих меняться (балансовая стоимость и т.п.), причем для одного ОС может быть только одна операция движения в месяц. В этой таблице есть поле ID_OS - foreing key на искуственный ПК в таблице OS и поле ACC_DATE - дата операции. (в триггере before insert, update день в этой дате принудительно устанавливается в 1). Естественно, что эти два поля и составляют ПК таблицы. И естественно, что дата может редактироваться. Можно конечно сделать искуственный ПК, а на ID_OS и ACC_DATE создать UNIQUE INDEX, но зачем ? Это было бы еще оправдано, если бы были таблицы ссылающиеся на эту, но их нет, и не предвидится. Ну и зачем там еще одно искуственно генеренное уникальное поле ?
P.S. Я еще не проснулся :), объяснение какое-то сумбурное получилось, но надеюсь понятно. Счас кофе выпью, и проснусь окончательно :-)


 
Anatoly Podgoretsky   (2003-04-18 10:32) [16]

Johnmen © (18.04.03 09:46)
Можно, само понятие первичный ключ ни чего не говорит о запрете редактирования, только об одном этот улюч должен одназначно идентифицировать запись, другое дело нужно или и можно ли по самой задаче. Но никакого запрета на это в теории и в реализации нет.


 
Johnmen   (2003-04-18 10:45) [17]

>Zacho © (18.04.03 10:28)
>Я еще не проснулся :),

А незачем допоздна зависать в инете...:)))

То, что ты написал, я понял. По сути у тебя не PK, а именно UNIQUE INDEX ! Изменяемый. В отсутствии реального PK. Тогда понятна необходимость в OLD_.
Что ж, такой подход, я думаю, может быть оправдан...:)

>Anatoly Podgoretsky © (18.04.03 10:32)
>Но никакого запрета на это в теории и в реализации нет.

Ну с этим-то я и не спорил...:))




 
Zacho   (2003-04-18 11:04) [18]


> Johnmen © (18.04.03 10:45)

Не, это полуреальный ПК :-) Полностью реальным он был бы, если бы первое поле было не искуственно сгенеренное (и не несущее никакой осмысленной информации) ID_OS, а, например, инвентарный номер объекта. :-))
Впрочем, это зависит от интерпретации слова "реальный" :)
Кажется мне, что запахло старым знаменитым фидошным флеймом "СК против ЕК" :-) Надеюсь, история не пойдет по кругу :-))))


 
Johnmen   (2003-04-18 11:09) [19]

>Zacho © (18.04.03 11:04)
>Надеюсь, история не пойдет по кругу

Не пойдет...:)
Ты меня понял, я тебя понял...Кто не понял - мы не виноваты. Ж;-)




 
iusupp   (2003-04-18 23:57) [20]

Круто оперировать Вам известными словами(понятиями)...
Так никто не объяснил (для начинающего) как редакторовать поля таблицы в DBGrid...
БД созданной в IBExspert...
>Zacho © И IBExpert - это не база, а все лишь инструмент для работы с IB.
Понятно что для создания БД...
А не работает именно редактирование...
> Жук
Не очень понятно, зачем динамически создавать SQL for Insert and Modifi
А как же их update по другому...?


 
Johnmen   (2003-04-19 01:25) [21]

Все очень просто. Статически прописываешь SelectSQL, InsertSQL и т.д., указывая параметры. Имена параметров должны совпадать с именами соотв. полей. При этом, при вызове метода Post (явном или нет) будет выполнен соответствующий запрос (добавление, обновление), где значения параметров будут заполнены автоматически из текущих значений полей НД. Учитывай, если надо, особенности обновления ключевых полей, как сказал Zacho ©.
Если параметр в SelectSQL, то его значение указывай явно перед открытием НД, либо оно будет определено автоматически при наличии ведущего (мастерного) НД.
Остальные нюансы прочувствуешь потом...:)


 
Anatoly Podgoretsky   (2003-04-19 09:34) [22]

Zacho © (18.04.03 11:04)
Тенцер недавно поставил точку в СК, а ты помнишь он был одним из активных участников той дисскуссии, в данный момент он сказал, как только мы вносим хоть какой либо смысл в суррогатный ключ, так он сразу становится естественный. Хотя ранее был немного другого мнения.


 
iusupp   (2003-04-19 14:37) [23]

Всем спасибо...



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

Форум: "Базы";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.5 MB
Время: 0.008 c
3-23015
vil
2003-04-18 10:32
2003.05.08
переименование полей в таблице БД ACCESS


7-23407
[BAD]Angel
2003-03-16 21:08
2003.05.08
Как выключить комп?


14-23398
Supreme 2
2003-04-21 19:31
2003.05.08
Как убрать


14-23284
SPeller
2003-04-22 03:19
2003.05.08
Хотите узнать о себе больше?


6-23265
Andrew777
2003-03-13 15:52
2003.05.08
Socket & Delphi7





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский