Компьютерный форум NoWa.cc Здесь может быть Ваша реклама
Правила Форума
редакция от 22.06.2020
Форум .::NoWa.cc::.
Вернуться   Компьютерный форум NoWa.cc > В помощь вебмастеру > Программирование > Delphi

Уважаемые пользователи nowa.cc. Мы работаем для вас более 20 лет и сейчас вынуждены просить о финансовой помощи по оплате за сервер.
Окажите посильную поддержку, мы очень надеемся на вас. Реквизиты для переводов ниже.
Webmoney Webmoney WMZ: Z021474945171 Webmoney WME: E159284508897 Webmoney WMUSDT: T206853643180
Кошелёк для вашей помощи YooMoney 4100117770549562
YooMoney Спасибо за поддержку!

Ответ
 
Опции темы Опции просмотра Language
Старый 15.11.2007, 18:12   #1
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.11.2007
Адрес: Миасс
Сообщений: 35
Репутация: 7
По умолчанию Firebird (работа с базой данных из Delphi)

Господа, подскажите решение такого вопроса:
На delphi создана программа, которая добавляет записи в таблицу. В таблице есть поле ключевое (например NUM_1), которое содержит порядковый номер записи. Как сделать, чтобы при добавлении новой записи через IBQuery, увеличить порядковый номер на 1.

Я делал следующим способом, через запрос, переходил к последней записи и смотрел её номер, а при ставке новой к ней прибавлял 1., но если несколько пользователей добавляют одновременно несколько записей, то с момента получения и добавления моих записей, последний номер становится не актуальным.
Как победить это дело, и всё это описать через IBQuery (или как то по другому, кто знает)?
Базу использую Firebird.
AlexanderP вне форума
 
Ответить с цитированием Вверх
Здесь может быть Ваша реклама
Здесь может быть Ваша реклама


Реклама: С любовью и яростью рецензия на фильмяндекс почта youtubeкарбид кремния зеленый 63сМульти-сплит системы MITSUBISHIAcer Aspire C24-1610


Старый 16.11.2007, 09:27   #2
Gage
Новичок
 
Пол:Мужской
Регистрация: 13.11.2007
Сообщений: 10
Репутация: 2
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

1. Нужно создать генератор - один раз
create generator genForMyKeyField
2. В запросе на вставку данных в таблицу пишешь
insert into MyTable (MyKeyField, Field2,...) values (gen_id(genForMyKeyField,1), 'any value',...)
===
genForMyKeyField - имя генератора - любое имя какое нравится
gen_id(GN,1) - встроенная функция - увеличивает и возвращает значение генератора GN на любое число - в данном случае на единицу.
Сетевые ошибки в данном случае невозможны.
Gage вне форума
 
Ответить с цитированием Вверх
Старый 18.11.2007, 21:26   #3
AlexanderP
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.11.2007
Адрес: Миасс
Сообщений: 35
Репутация: 7
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Господа, подскажите как работать с IBDataSet.
В свойствах IBDataSet, выбираю таблицу, поля, делаю Generate SQL (InsertSQL, UpdateSQL, DeleteSQL …).
С добавление новых записей (insert) в таблицу, разобрался, а как выполнить обновление и уделение данных в таблице?
Select запрос в IBDataSet должен быть обязательно открыт для обновления, или как то по другому можно провести?
Как в Delphi это всё описать (хотя бы простейший пример)?
AlexanderP вне форума
 
Ответить с цитированием Вверх
Старый 21.11.2007, 05:39   #4
AlexanderP
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.11.2007
Адрес: Миасс
Сообщений: 35
Репутация: 7
По умолчанию Firebird (работа с базой данных из Delphi)

Всё, разобрался
Вопрос снимается.
AlexanderP вне форума
 
Ответить с цитированием Вверх
Старый 03.12.2007, 08:04   #5
raptor3
Неактивный пользователь
 
Пол:Мужской
Регистрация: 03.12.2007
Сообщений: 13
Репутация: 0
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Цитата:
Сообщение от Gage Посмотреть сообщение
1. Нужно создать генератор - один раз
create generator genForMyKeyField
2. В запросе на вставку данных в таблицу пишешь
insert into MyTable (MyKeyField, Field2,...) values (gen_id(genForMyKeyField,1), 'any value',...)
===
genForMyKeyField - имя генератора - любое имя какое нравится
gen_id(GN,1) - встроенная функция - увеличивает и возвращает значение генератора GN на любое число - в данном случае на единицу.
Сетевые ошибки в данном случае невозможны.

Зачем усложнять вызовом генератора в делфи - проще повесить генератор на тригер в самой базе
raptor3 вне форума
 
Ответить с цитированием Вверх
Старый 03.12.2007, 19:27   #6
AlexanderP
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.11.2007
Адрес: Миасс
Сообщений: 35
Репутация: 7
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Цитата:
Сообщение от raptor3 Посмотреть сообщение
Зачем усложнять вызовом генератора в делфи - проще повесить генератор на тригер в самой базе

Да нет, проще всё таки генератор на процедуру повесить, так намного проще контролировать значение.
А если на тригер, то останешься без контроля.
AlexanderP вне форума
 
Ответить с цитированием Вверх
Старый 12.12.2007, 14:42   #7
dim34rus
Неактивный пользователь
 
Регистрация: 10.12.2007
Сообщений: 11
Репутация: 4
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Цитата:
Сообщение от AlexanderP Посмотреть сообщение
Да нет, проще всё таки генератор на процедуру повесить, так намного проще контролировать значение.
А если на тригер, то останешься без контроля.

Если контроль не нужен, первый способ лучше.
dim34rus вне форума
 
Ответить с цитированием Вверх
Старый 20.12.2007, 20:07   #8
AlexanderP
Неактивный пользователь
 
Пол:Мужской
Регистрация: 04.11.2007
Адрес: Миасс
Сообщений: 35
Репутация: 7
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Подскажите, кто знает...
Как в Delphi написать код, чтобы программно узнать, какие пользователи (Имя) подключены к БД firebird.
И вообще, возможно ли это?
AlexanderP вне форума
 
Ответить с цитированием Вверх
Старый 21.12.2007, 10:30   #9
Cze
Новичок
 
Пол:Мужской
Регистрация: 26.11.2007
Сообщений: 27
Репутация: 20
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Цитата:
Сообщение от AlexanderP Посмотреть сообщение
какие пользователи (Имя) подключены к БД firebird.

в IBPlusесть свойство компонента TFIBDatabase.UserNames
Это и есть подключенные юзеры, седения о юзере можно узнать через TpFIBSecurityService.UserInfo
Cze вне форума
 
Ответить с цитированием Вверх
Старый 03.01.2008, 00:23   #10
Морковкин
Постоялец
 
Аватар для Морковкин
 
Пол:Мужской
Регистрация: 23.05.2006
Адрес: Бандерштат
Сообщений: 634
Репутация: 2687
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Может у кого то есть готовый исходник формы алиаса, для подключения к базе данных IB под сервер Firebird 2.0.?
Морковкин вне форума
 
Ответить с цитированием Вверх
Старый 03.01.2008, 10:37   #11
dim34rus
Неактивный пользователь
 
Регистрация: 10.12.2007
Сообщений: 11
Репутация: 4
По умолчанию Ответ: Firebird (работа с базой данных из Delphi)

Цитата:
Сообщение от livand Посмотреть сообщение
Может у кого то есть готовый исходник формы алиаса, для подключения к базе данных IB под сервер Firebird 2.0.?

Написал я типа менеджера алиасов, правда для FB1.5 Смысл такой: Есть база алиасов в ini файле, выбираешь нужный и выгружаешь в конфигурационный файл. Затем твоя программа тупо смотрит этот конфиг и организовывает подключение к базе. Если набо, мыло давай.
dim34rus вне форума
 
Ответить с цитированием Вверх
Ответ


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
При закрытии соединения в Дельфах с базой данных firebird программа выле ошибкой Азамат31 Delphi 5 28.06.2008 12:10
работа с базой kravit PHP 5 02.05.2008 00:52
Вопрос из разряда Delphi+FireBird Андрей1981 Базы данных 6 12.01.2008 14:30

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход


Текущее время: 02:45. Часовой пояс GMT +3.


Copyright ©2004 - 2025 NoWa.cc

Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2026, vBulletin Solutions, Inc. Перевод: zCarot
Время генерации страницы 0.06043 секунды с 11 запросами