powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc и Insert
16 сообщений из 16, страница 1 из 1
TADOStoredProc и Insert
    #32063864
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ХП на MSSQLServer следующего вида
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
CREATE PROCEDURE dbo.RetZayaMTO AS
SELECT ZayaMTO.Zaya_Num,  ZayaMTO.Period,  ZayaMTO.[Year],  ZayaMTO.[Date],
 -- ([Name]+CHAR(32)+[Famili]) AS Manager, 
 
Company_Name
FROM ZayaMTO
INNER JOIN
Company
ON ZayaMTO.Company_id = Company.Company_id
GO

в проге есть TADOStoredProc которая выдает результат в грид, но соответственно при добавлении новой строки в TDBGrid вылетает ошибка, чего делать то???Писать триггер на Insert???Если да то как он примерно выглядеть то должен???
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32063870
Maverick
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Вот тебе пример моей ХП :

CREATE PROCEDURE dbo.PROCAddAuthUser @UserName varchar(25),
@UserPasswd varchar(25), @UserControl varchar(25),
@ERR int output AS

BEGIN tran AddAuthUser /*начало транзакции*/

/* затем какие-ио действия*/
Insert into AuthUser(UserName, UserPasswd, UserControl)
Values (@UserName, @UserPasswd, @UserControl)


if(@@error!=0) begin /*а вот здесь у меня проверка на ошибки. Это не обязательно!*/
rollback tran AddAuthUser
select @ERR=1
end
else begin
select @ERR=0
commit tran AddAuthUser
end
GO
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32063908
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не в том дело моя ХП свою работу длелает, но по коду же понятно что в грид приходит одно поле из таблицы Company
через INNER JOIN, вопрос в том что надо сделать чтобы при добавлении новой строки в гриде проходило нормально е добавление в БД, то есть происходил поиск Company_id В таблице Company и вставлялся в талицу ZayaMTO
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32063928
_JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К сожалению Вы не указали какая именно ошибка возникает.

Возможно Вам помогут вот эти статьи:

http://www.delphikingdom.com/helloworld/ado02.htm
http://www.delphikingdom.com/helloworld/ado03.htm
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32063953
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
EOleException with message '[Microsoft][ODBC SQL Server Driver][SQL Server]'Cannot insert the value NULL into column 'Region_id', table 'Base.dbo.Company'; column does not allow nulls. INSERT fails'.
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064112
_JINX
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почитайте
http://www.delphikingdom.com/helloworld/ado03.htm

Судя по всему вам необходимо установить свойство 'Unique Table'
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064124
Oleg F
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В примере, который содержится в вопросе, хранимая процедура вообще не по делу используется. В таких случаях нужно VIEW использовать. Там же нет ни параметров, ни логики - один SELECT с JOIN-ом.
Используйте VIEW.
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064211
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И добавлять строку нужно через отдельную хранимую процедуру, и не через DBGrid.
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064222
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысла они не меняют, только код загромождают
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064313
Rousso
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Открой таблицу Company в Enterprise Manager (Design Table) и поставь флажок для поля region_id Allow nulls
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064435
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Аха, и все компании у меня будут в нулевом регионе, неа не выход, совсем не выход
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064444
SiDen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте поиграться с @@IDENTITY и IDENT_CURRENT('TableName')
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064456
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Смысла они не меняют, только код загромождают

Кто? Что?

Аха, и все компании у меня будут в нулевом регионе, неа не выход, совсем не выход

Так Вы хотите ничего ручками не делать, а чтобы "все само куда надо вставлялось"?
Это к доктору. Кодду )

Программы то иногда писать путево надо :)
Кто же вместо Вас строку в таблицу добавит? Дядя Билли?
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064479
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обидеть никого не хотел, нервы, однако :(
Да и вопросы...... :()
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064699
Фотография moonmike
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да я не обидчивый
Смысла они не меняют, только код загромождают
Кто? Что?

Параметры хранимой процедуры я вырезал и написал сюда только то что возвращает РекордСет.
Так Вы хотите ничего ручками не делать, а чтобы "все само куда надо вставлялось"?
Это к доктору. Кодду )

Программы то иногда писать путево надо :)
Кто же вместо Вас строку в таблицу добавит? Дядя Билли?

Просто показалось несколько странным, что Грид позволяя редактировать не в состоянии распознать куда и чего записывать. Вот и спросил. По моему опыту документированность у Борландовских продуктов оставляет желать.....вообще желать документированности, не говоря уж про лучшую документированность. А написать то ручками не проблема.=)))
...
Рейтинг: 0 / 0
TADOStoredProc и Insert
    #32064861
Фотография tygra
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Документироваанность то как раз самая лучшая среди многих

А кто сказал, что грид должен вставлять? Грид, извините, только показывает то, что дали.
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / Delphi [игнор отключен] [закрыт для гостей] / TADOStoredProc и Insert
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]