| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 «  : 11-04-2008 09:37 »   | 
								
								 | 
							  
							 
							Господа, просьба за вопрос ногами не бить   Есть база sybase (уже действующая, мне надо внести изменения в связи с новыми данными). В частности, для определенных операций надо установить триггеры. В пакете (уже существующем) я вижу скрипты для триггеров, но никак не могу понять, кто и когда включает эти триггеры!  Начала искать в инете - всюду описана функция создания триггера, но как он включается - нигде не найду... Может кто-то может объяснить мне этот механизм?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #1 : 11-04-2008 09:45 »   | 
								
								 | 
							  
							 
							попробуй 
  alter trigger имя_триггера active;
  а вырубить - inactive 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PooH
							
								Глобальный модератор
								
								 
								  Offline
								Пол:   
								
								... и можно без хлеба!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #2 : 11-04-2008 09:56 »   | 
								
								 | 
							  
							 
							обычно триггер вешается на событие... например, на вставку новой записи в таблицу... то есть когда запись вставится тогда триггер и вызовется.
  Например:
  CREATE TRIGGER check_birth_date -- название     AFTER INSERT ON Employee -- на какое событие: после вставки (после commit) в таблицу Employee REFERENCING NEW AS new_employee -- структура со вставляемыми значениями new_employee FOR EACH ROW .... -- вызывать скрипт для каждой втавляемой записи
 
  ------- CREATE TRIGGER mytrigger BEFORE INSERT ON Employee  -- вызывать скрипт при вставке записи в таблицу Employee до COMMIT;
  --- Когда будет вызываться такой думаю уже догадаешься сама CREATE TRIGGER mytrigger AFTER UPDATE ON employee REFERENCING NEW AS table_after_update             OLD AS table_before_update FOR EACH STATEMENT 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
									« Последнее редактирование: 11-04-2008 10:03 от PooH »
								 | 
								
									 
									Записан
								 | 
							  
							 
							Удачного всем кодинга! -=x[PooH]x=- 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #3 : 11-04-2008 10:16 »   | 
								
								 | 
							  
							 
							POOH, а откуда база данных знает о существовании триггера на это событие? Леш,  я еще до этой стадии не дошла    Мне бы понять, как все это хозяйство взаимосвязано...   
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #4 : 11-04-2008 10:22 »   | 
								
								 | 
							  
							 
							Ирин, база просто знает , когда там создали триггер и связали его с событием . И он, собако, по событию и срабатывает. Я сам недавно стал пользоваться - очень удобно, только иногда могут и помешать, тогда отключение на время рулит 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PooH
							
								Глобальный модератор
								
								 
								  Offline
								Пол:   
								
								... и можно без хлеба!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #5 : 11-04-2008 10:22 »   | 
								
								 | 
							  
							 
							ну... знает она... обязательно есть связь триггера с таблицей... это связь хранится обычно в системных таблицах. а зачем тебе знать откуда она знает - что тебе в итоге надо получить?
  --- насколько я понимаю у тебя в пакете хранятся скрипты которые вызываются из триггеров 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Удачного всем кодинга! -=x[PooH]x=- 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #6 : 11-04-2008 10:56 »   | 
								
								 | 
							  
							 
							Леш, POOH, сейчас попытаюсь объяснить, почему хочу все знать   Я вижу следующее: есть проектная папка, в которой есть 1) подраздел с sql-скриптами (для таблиц, views, процедур, триггеров). 2) подраздел с проектиком, в котором программно осуществляется связь с базой и вызов процедур и вьюшек (через SQLAllocHandle, SQLBindParameter и т.д.) Т.е. я вижу, как программно вызываются процедуры и вьюшки, но как к базе подвешиваются триггеры??? Должна же база знать о том, что этот самый триггер существует!!! Ладно, sybase я вижу вперыве в жизни. И где и что там находится, понятия не имею. Решила подойти к вопросу творчески! И полезла в родной access, НО и там не поняла, куда и как этот самый триггер создать... Т.е. я вижу возможности для создания всяких select, view, модулей на бейсике. И все... Т.е. я пока саму схему связи не пойму...  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #7 : 11-04-2008 11:10 »   | 
								
								 | 
							  
							 
							Ирин, если триггер уже есть - загляни средством редактирования базы и посморти список триггеров, которые создали до тебя   Их можно программно менять, удалять, делать свои - через create trigger и alter trigger  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							PooH
							
								Глобальный модератор
								
								 
								  Offline
								Пол:   
								
								... и можно без хлеба!
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #8 : 11-04-2008 11:41 »   | 
								
								 | 
							  
							 
							вот про access:  http://office.microsoft.com/en-us/access/HP030854151033.aspxно как к базе подвешиваются триггеры??? точно также как и создается сама база, вот ты как таблицы создаешь? CREATE TABLE... также и CREATE TRIGGER... триггер это отдельный объект БД связанный с таблицей... условно говоря СУБД при каждом действие с данными таблицы проверяет какие триггеры относятся к этим действиям и вызывает скрипт триггера.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							Удачного всем кодинга! -=x[PooH]x=- 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #9 : 11-04-2008 11:50 »   | 
								
								 | 
							  
							 
							Леш, я нашла тут какой-то скрипт, который что-то вносит в базу, только мне пока неясно, где же находится весь список триггеров. Но это я еще поищу. Но я уже хочу хоть для себя найти - как в аксессе создать этот тарара триггер!    Ведь создание sql-скрипта где-то вне базы еще не решает проблему - база должна как-то узнать о существовании этого самого триггера!  Я попробовала написать create trigger ... в sql-редакторе и сохранить. Щас! Мне выдало ошибку, бо редактор уверен в том, что я хочу создать таблицу!  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #10 : 11-04-2008 11:51 »   | 
								
								 | 
							  
							 
							POOH, пардон, пока отправила ответ, приахло твое сообщение. Спасибочки! Сейчас посмотрю!  Похоже, у меня уже в голове что-то заело на эту тему     
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						
							Алексей++
							
								глобальный и пушистый 
								Глобальный модератор
								
								 
								  Offline
								
								Сообщений: 13
								
								
								
								
								
							  
						 | 
						
							
								  | 
								
									
									 « Ответ #11 : 11-04-2008 14:00 »   | 
								
								 | 
							  
							 
							Я попробовала написать create trigger ... 
  а покажи полностью строчку ?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #12 : 14-04-2008 12:24 »   | 
								
								 | 
							  
							 
							Леш, во-первых, пардон за несвоевременный ответ. Далее по сути - я тупо скопировала уже готовое из скрипта в проекте (чтобы быстрее было и без ошибок    А перед этим создала в аксессе одну табличку с двумя полями). Но дело в том, что я пыталась это написать во вкладке "запросы" (мож, я неправа с переводом - смысл в том, что тут задаются все селекты). Судя по всему, при попытке выполнить или сохранить написанное выполняется проверка на соответствие скрипта теме. Ну а так как тема не та - он и возмущается аки упертый осел    Тут меня пока от этой темы оторвали и на другую амбразуру кинули, изверги. Как только вернусь из этой темы (надеюсь, что через пару часов это произойдет), займусь триггерами дальше. Самое обидное - линк, который дал мне Пух, для офиса2003, а у меня, как выяснилось, на компе 2000... Так что сначала буду искать, как эта фигня реализована в 2000. Кстати, еще вопросик: а как ты дебагишь это дело? Т.е. надо же как-то проверить работоспособность? Просто задаешь разные варианты insert/delete-запросов и смотришь на результаты?  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #13 : 14-04-2008 12:50 »   | 
								
								 | 
							  
							 
							Кстати, еще вопросик: а как ты дебагишь это дело? Т.е. надо же как-то проверить работоспособность? Просто задаешь разные варианты insert/delete-запросов и смотришь на результаты?
  Да-да - ходовой метод. Естественно, сперва на тестовых таблицах, а потом уже на реалке.  
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									 « Ответ #14 : 14-04-2008 15:17 »   | 
								
								 | 
							  
							 
							Ром, спасибочки за ответ! Я вообще сначала хочу увидеть, что это чудо будет вытворять в случае ошибки! Надо ж лазутчика в лицо знать!   А точнее, база данных, как и восток, дело тонкое, надо хоть понимать, что от нее требуешь.    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							RXL
							
						 | 
						
							
								  | 
								
									
									 « Ответ #15 : 14-04-2008 17:12 »   | 
								
								 | 
							  
							 
							Malaja, саму процедуру можно сперва отладить как PROCEDURE - так легче вызывать, а потом уже подгонять под TRIGGER. 
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С. 
						 | 
					 
				 
			 |  
		 
	 | 
	
		
		
			
				
					
						| 
							Malaja
							
						 | 
						
							
								  | 
								
									
									«  Ответ #16 : 15-04-2008 08:20 »    | 
								
								 | 
							  
							 
							Ром, о, так это ж здорово! Так можно упростить жизнь! Спасибочки!    
						 | 
					 
					
						
							
								| 
								 | 
							 
								| 
								 | 
								
									 
									Записан
								 | 
							  
							 
							холоднокровней, Маня, Ви не на работе --------------------------------------- четкое определение сущности бытия: - А мы в прошлом или в будущем?- спросила Алиса. - Мы в жопе, - ответил кролик. - А "жопа" - это настоящее? - спросила Алиса. - А "жопа" - это у нас символ вечности. 
						 | 
					 
				 
			 |  
		 
	 | 
	 |