Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

регистр при именовании переменных


Страницы:   1 2

stud ©   (2006-07-14 18:04:00) 

субд - MSSQL2000.
проблема следующая: на одну таблицу разработчики повесили триггер, в котором объявлены две одинаковые переменные, но записанные в разном регистре.
сам sql сервер настроен на различие регистра, но когда я пытаюсь внести изменения в эту таблицу то при срабатывании триггера получаю ошибку:
переменная ААА уже объявлена.
для доступа пользуюсь АДО 2.8. нужны ли какие настройки на самом клиенте чтобы избежать подобной проблемы?


stud   (2006-07-17 16:37:00) [1]

с разработчиками разобрались, они сами переименовали эти переменные.
очевидно "ихний" билдер настроен как-то хитро, что действительно игнорирует подобные вещи!?
хотя как и почему - не понятно....
вот еще вопрос в догонку:
а насколько корректно в самом триггере откатывать транзакию?
просто просмотрел весь текст и нашел в конце - если какие-либо условия не соблюдаются то в триггере происходит откат транзакции.


Fay   (2006-07-17 14:41:00) [2]

2 sniknik ©   (17.07.06 14:38) [34]
> я сомневаюсь в том что не вижу, и не могу проверить.
Такая же фигня 8)


sniknik   (2006-07-17 14:38:00) [3]

Fay ©   (17.07.06 14:36) [33]
твой то? не сомневаюсь, добавляются, не вижу там слова instead в тригере.

я сомневаюсь в том что не вижу, и не могу проверить.


Fay   (2006-07-17 14:36:00) [4]

2 stud ©   (17.07.06 13:42) [31]
> каким образом запись всетаки добавляется у "них" в бд?
2 sniknik ©   (17.07.06 14:25) [32]
а я знаю?

Проверьте код из [24] - записи прекрасно добавляются.


sniknik   (2006-07-17 14:25:00) [5]

> каким образом запись всетаки добавляется у "них" в бд?
а я знаю? и откуда бы мог узнать?... уже сколько намекаю на реальный код, чтобы сэмулировать глюк... ?
вот на 31м только посте узнал кодировку... приду домой попробую с ней. опять по догадкам...

и потом, чем может помешать добавлятся записям "слет" тригера, если он не instead of конечно?


stud   (2006-07-17 13:42:00) [6]

колатион cirilyc_general_bin
sniknik ©   (17.07.06 13:20) [30]
а происходит ошибка которая их программой просто "проглатывается", тригер естественно не отрабатывает

[jhjij
хорошо, если триггер не отрабатывает (возникает исключение) каким образом запись всетаки добавляется у "них" в бд?
если исключение гасится на клиенте, то сервер по идее все равно не должен дать внести изменения в бд, если в работе тригера возникло исключение?


sniknik   (2006-07-17 13:20:00) [7]

> а происходит проверка на дубликаты и т.д.
судя по всему не происходит... а происходит ошибка которая их программой просто "проглатывается", тригер естественно не отрабатывает.

последняя проверка, для уверенности, какой у тебя коллатион сервера? (свойства на сервере в IE, вкладка "general")


stud   (2006-07-17 13:15:00) [8]

это на одном и том же сервере, на одной и той же бд.
этот вопрос возникал давно и они его подправили, но после очередного обновления опять вернулся старый код тригера.
в самом тригере данные не изменяются, а происходит проверка на дубликаты и т.д.


sniknik   (2006-07-17 13:07:00) [9]

stud ©   (17.07.06 13:02) [27]
и это на том же самом sql сервере, на котором "их" программа работает? и тригер этот выполняется? (по изменяемым в нем данным можно посмотреть)  
или это ты перенес "их" базу, на свой с другими настройками sql сервер?


stud   (2006-07-17 13:02:00) [10]

declare .....
@CCTCodechar(5),
@CCTPassDeal varchar(50),
@Len  int,
@Queue  int,
@Status  int,
@DelStatus int,
@TestedCurrencyCheck smallint,
@CctCode
вот виновники, а вот ошибка:
project ... raised exception class EOleException with message 'The variable name '@CctCode' has already been declared. variable names must be unique within a query batch or stored procedure'


stud   (2006-07-17 12:52:00) [11]

sniknik ©   (17.07.06 12:46) [25]
но реальный "грешный" код был бы лучше.

ща копаю. сегодня очередное обновление было


sniknik   (2006-07-17 12:46:00) [12]

Fay ©   (17.07.06 12:27) [24]
возможно, но тогда коллатион тут вообще не причем.
как же тогда
> триггера получаю ошибку: переменная ААА уже объявлена.

вообще догадки конечно развивают сообразительность, но реальный "грешный" код был бы лучше.


Fay   (2006-07-17 12:27:00) [13]

2 sniknik ©   (17.07.06 12:21) [23]
Аналог глюка автора? Прикольно, но я, кажется, понял 8)

create table T1 (
ID int not null primary key
)
go
create table T2 (
ID int not null primary key
)
go
create trigger tr_t2_i
on T2
for insert
as
 raiserror 50001 'qwe'
go
create procedure p_Jopa
as
 insert into t1 values (1)
 insert into t2 values (1)
 insert into t1 values (2)
go


на клиенте

ADOConnection1.Execute('exec p_Jopa')// Молча
ADOConnection1.Execute('insert into T2 values (3)')// Вслух

Т.е. PowerBuilder, видимо, игнорирует ошибки. Там ведь нет компонентов VCL, которые вымучивают исключения на основании какой-то из возвращённых в recordset-ах ошибок.


sniknik   (2006-07-17 12:21:00) [14]

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


Fay   (2006-07-17 12:16:00) [15]

2 sniknik ©   (17.07.06 12:10) [20]
Не удивительно, что всё работает.


stud   (2006-07-17 12:10:00) [16]

Fay ©   (17.07.06 11:42) [16]
Это невдолбенно сложный вопрос. Даже как-то в голову ничего не приходит...

я понимаю, понедельник - день тяжелый, но не настолько же!
меня интересует почему при инициировании этого тригера моей программой возникает исключение, а при выполнении тех же операций билдеровской прогой этого исключения не возникает?!
(это не потому что я обрабатываю исключения и вывожу сообщения об ошибках, а потому что оно действительно возникает!
да, билдерская программа тоже обрабатвает исключения.)


sniknik   (2006-07-17 12:10:00) [17]

p.s. если нужны  какието проверки дополнительные, то только вечером, на работе не хочу все "портить".


sniknik   (2006-07-17 12:08:00) [18]

sniknik ©   (15.07.06 00:44) [9]
> Cyrillic_General_CS_AS


Fay   (2006-07-17 12:06:00) [19]

2 sniknik ©   (17.07.06 12:04) [17]
Какой collation у сервера?


sniknik   (2006-07-17 12:04:00) [20]

вообщето в суботу (раз уж все поменял), делал тест, тригер в котором 2 переменные с различием только в регистре, никаких проблем с регистром при обновлении... да и вообще проблем как таковых (не учитывая того, что весде приходится регистр учитывать... ну это то как раз ожидалось)

т.что проблема скорее всего с способах реализации, и не тригера, т.к. "их" программа работает без ошибок.
ну и думаю дальше "теорию" обсуждать бесмысленно, т.к. у "них" работает, у меня тоже, значит проблема в ... (догадайтесь ;)


Страницы:   1 2

Наверх

Титульная страница Поиск, карта сайта Написать письмо