Pytanie : W baza danych, using ColdFusion zastosowanie, I potrzebować dokument dokument temat.

Baza danych: MS SQL Serwer 2005
ColdFusion wersja 8

Cześć. I pracować na ten zadanie chwilowo i dosięgać punkt przy che I potrzebować dla pomoc.

Zadanie w wytyczne: W baza danych, I potrzebować dokument dokument temat.

Historia:
W zeszłym miesiącu, gdemaria pomóc -- bardzo cierpliwie -- zastosowanie który pozwolić użytkownik upload i dokument w baza danych. The zastosowanie pracować doskonale i I uczyć się tona podczas gdy gdemaria prowadzić w ono. The zastosowanie pozwolić użytkownik dokument; upload kartoteka (DOC, PDF, wizerunek) ten współpracownik z ten dokument, i kierować metadata który pertains the dokument.

Teraz, I potrzebować teraz dokument dokument temat.

Zadanie w szczegół:

Podstawowy I potrzebować mój zastosowanie the zdolność stół: tbl_Document_Has_Topic.

Mój trzy pracujący stół być:

tbl_CEP_Documents (ten stół trzymać metadata o CEP Dokument) PK: DocumentID
tbl_CEP_Document_Topic (ten stół trzymać lista wszystkie CEP Dokument Temat) PK: DocumentTopicID
tbl_Document_Has_Topic (ten stół odnosić sie tbl_CEP_Documents tbl_CEP_Document_Topic)

tbl_Document_Has_Topic potrzeba tylko dwa kolumna:
DocumentID
DocumentTopicID

* DocumentID być the PK w tbl_CEP_Documents.
* DocumentTopicID być the PK w tbl_CEP_Document_Topic.

..... Jeżeli I wyznaczać DocumentTopicID DocumentID, then ten Dokument wyznaczać the poprawny Dokument Temat.

To być the funkcja tbl_Document_Has_Topic: documentTopicID DocumentID.

Mój zadanie być, w mój dokument redagować interfejs, wybrany menu który pozwolić użytkownik Dokument Temat dokument.

I dodawać the wybrany menu. Zadawalać widzieć przykład tutaj:

http://ebwebwork.com/cep/admin/insert_update.cfm?DocumentID=27

….Zauważać the wybrany menu "Ten Dokument CEP Temat". The wybrany menu po prostu zapętlać przez the 24 ewentualny CEP dokument temat. Tak:

(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:

 
WYBRANY DocumentTopicID, DocumentTopic
OD tbl_CEP_Document_Topic
ROZKAZ DocumentTopic
  
 
    

Wyznaczać ten Dokument CEP Temat
Wybierać przynajmniej jeden temat. Więcej niż jeden temat, trzymać the Ctrl klucz i wybiórka temat z the mysz kursor.



Ten Wybiórka menu pracować dobrze. Zauważać dobierać do pary w the wybrany menu wybrany DocumentTopic dobierać do pary z swój poprawny DocumentTopicID.

W Ten Sposób, I potrzebować nowy zapytanie który aktualizacja zgłaszać tbl_Document_Has_Topic, using the wybór od the Wybrany menu.

Gdzie ten zapytanie, i jaki forma the zapytanie?

Nowy dokument potrzebować wyznaczać dokument temat; i, istniejący dokument potrzebować temat teraz i wtedy.

W the zastosowanie I już mieć zapytanie który wkładać nowy dokument, i aktualizować istniejący dokument. I potrzebować tamte istniejący zapytanie, tak, że the zapytanie aktualizować tbl_Document_Has_Topic z odpowiedni DocumentID i DocumentTopicID wartość? Ono wydawać się jak the sposób ono. I, I potrzebować wewnętrzny łączyć (I myśleć) the stół, tbl_Document_Has_Topic.

Być I o to prawidłowo?

I być bardzo wdzięczny dla jakaś rada.

I append mój pracujący kod.

Dziękować ty zawsze.

Erick B
(1):
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
206:
207:
208:
209:
210:
211:
212:
213:
214:
215:
216:
217:
218:
219:
220:
221:
222:
223:
224:
225:
226:
227:
228:
229:
230:
231:
232:
233:
234:
235:
236:
237:
238:
239:
240:
241:
242:
243:
244:
245:
246:
247:
248:
249:
250:
251:
252:
253:
254:
255:
256:
257:
258:
259:
260:
261:
262:
263:
264:
265:
266:
267:
268:
269:
270:
271:
272:
273:
274:
275:
276:
277:
278:
279:
280:
281:
282:
283:
284:
285:
286:
287:
288:
289:
290:
291:
292:
293:
294:
295:
296:
297:
298:
299:
300:
301:
302:
303:
304:
305:
306:
307:
308:
309:
310:
311:
312:
313:
314:
315:
316:
317:
318:
319:
320:
321:
322:
323:
324:
325:
326:
327:
328:
329:
330:
331:
332:
333:
334:
335:
336:
337:
338:
339:
340:
341:
342:
343:
344:
345:
346:
347:
348:
349:
350:
351:
352:
353:
354:
355:
356:
357:
358:
359:
360:
361:
362:
363:
364:
365:
366:
367:
368:
369:
370:
371:
372:
373:
374:
375:
376:
377:
378:
379:
380:
381:
382:
383:
384:
385:
386:
387:
388:
389:
390:
391:
392:
393:
394:
395:
396:
397:
398:
399:
400:
401:
402:
403:
404:
405:
406:
407:
408:
409:
410:
411:
412:
413:
414:
415:
416:
417:
418:
419:
420:
421:
422:
423:
424:
425:
426:
427:
428:
429:
430:
431:
432:
433:
434:
435:
436:
437:
438:
439:
440:
441:
442:
443:
444:
445:
446:
447:
448:
449:
450:
451:
452:
453:
454:
455:
456:
457:
458:
459:
460:
461:
462:
463:
464:
465:
466:
467:
468:
469:



 





 


 



 
 
  
 
   
 


 


        









  
    
	
			  
	
    
    
			  
	


 
 
 
  WYBIÓRKA "Tbl_CEP_Documents" OD tbl_CEP_Documents
  DOKĄD DocumentTitle =  
  I DocumentID  <> 
  
   
 
  
   
   
	
		   
	
    
      
   
    
    
    
    
				
    
  			  
				  AKTUALIZACJA tbl_CEP_Documents
				  USTALONY   DocumentTitle = ,
					DocumentType = ,
					DocumentAuthor = ,
				    DocumentAbstract = ,
				    DocumentPublicationDate = ,
				    DateRecordModified =  
				  DOKĄD DocumentID =  
			



    
				 
    
    
	
				
					
				 WSZYWKA W tbl_CEP_Documents
     					(
			            DocumentTitle,
            		    DocumentType,
                		DocumentAuthor,
		                DocumentAbstract,
        		        DocumentPublicationDate,
                		SSMA_TimeStamp
		                )
			     WARTOŚĆ (
						  ,
						  ,
						  ,
						  ,
						  ,
		     			  
				         )         
					

		 





    
          wybrany MAX (DocumentID) jako ID
           OD tbl_CEP_Documents
      


        






           
					      
    
    
    

    

    
          
				         
  
		    	
      			
			           
     			       
   			      

			
				    
			
            

			
			
			 WSZYWKA W tbl_CEP_Files
     			(
                DocumentID,
                FileName,
				FileExtension,
				FileType,
				FileSize,
                isDeleted
                )
		     WARTOŚĆ (
        		  
				  ,
				  ,
				  ,
				  ,
                  , (0)
		           )         
				  
  
		     
  
           
              
               
           
         
					   
		         
    	   
       			AKTUALIZACJA tbl_CEP_Files
           		USTALONY IsDeleted = (1)
        		DOKĄD FileID w ()
      		




		    
					
                    
  
		
				     
                         
                    
    
    


    
    
        


			   
					   
					                
					        
					       	
					         DELEATUR OD tbl_CEP_Documents
					         DOKĄD DocumentID =  
					        
              
 					        
						 

	    
        
        
            
    		

  





       

     
     
  

  
  
  
		    
			




 
  
    
			  
			  
				    wybiórka * od tbl_CEP_Documents dokąd DocumentID = #val (form.DocumentID) #
			  

  			
			       
			  
    
	




 
			 
			 
#variables.error#

#FormTitle#

WYBRANY DocumentTopicID, DocumentTopic OD tbl_CEP_Document_Topic ROZKAZ DocumentTopic

Dokument ID: #URL.DocumentID#

Dokument Tytuł

Dokument Typ

Dokument Autor

Wyznaczać ten Dokument CEP Temat
Wybierać przynajmniej jeden temat. Więcej niż jeden temat, trzymać the Ctrl klucz i wybiórka temat z the mysz kursor.

Dokumentować Abstrakt

Publikacja Data (use formularzowy MM/DD/YYYY)

Pod, zadawalać widzieć the kartoteka obecnie kojarzyć z Dokument ID #URL.DocumentID#. Jeżeli tam  być żadny kartoteka kojarzyć z the dokument, then żadny kartoteka pojawiać się żadny. Ty mieć the opcja upload kartoteka (PDF, DOC, wizerunek kartoteka), che kojarzyć the kartoteka z Dokument ID #URL.DocumentID#.

wybiórka * od tbl_CEP_files dokąd DocumentID = #val (form.DocumentID) # i isDeleted = (0)
Kartoteka - imię Deleatur
#getFiles.FileName#

Żadny Kartoteka Dołączać ten Dokument.


The guzik, kartoteka, kasować ten dokument, swój baza danych rejestr, i wszystkie kojarzony kartoteka. Use ostrożnie.

Odpowiedź : W baza danych, using ColdFusion zastosowanie, I potrzebować dokument dokument temat.

>
> wybrany MAX (DocumentID) jako ID
>           OD tbl_CEP_Documents
>


Jeżeli ty używać ten zapytanie the ID niedawno Wkładać dokument…; -) W środowisko z mnóstwo równocześnie użytkownik ono być prawdopodobny the krzywda ID.  

The najlepszy sposób the wartość auto zyskiwanie kolumna być CF8'S cfquery "rezultat" atrybut.  Po Tym Jak WSZYWKA, CF zaludniać the rezultat struktura z the nowy rejestr ID. The kluczowy imię zmieniać w zależności od twój db typ

Przykład: Dla MS SQL baza danych the kluczowy imię być IDENTITYCOL

result= " newDocument " >
   WSZYWKA W tbl_CEP_Documents (… kolumna….). WARTOŚĆ (......)



     The nowy documentID być #newDocument.IDENTITYCOL#
cfoutput>


> I już mieć zapytanie który wkładać nowy dokument, i aktualizować istniejący dokument…
> I potrzebować tamte istniejący zapytanie

Tylko the WSZYWKA zapytanie, więc ty móc the niedawno wkładać DocumentID.  Właśnie używać the "rezultat" atrybut opisywać opisywać.  Z AKTUALIZACJA, ty już mieć the ID (ie #form.DocumentID#)

Ponieważ ty modyfikować oddzielny stół, ty używać oddzielny cfquery.  Dla nowy dokument, najpierw robić the WSZYWKA w tbl_CEP_Documents.  Jak Tylko ty mieć the nowy documentID, ty móc ono the wybrany temat w twój drugi stół.

Od the temat ID przychodzić od twój tbl_CEP_Document_Topic, ty móc WYBIÓRKA dodawać móc the wybrany temat od ten stół, i wkładać the wartość w tbl_Document_Has_Topic w jeden spadać nurkowanie.  

Dla the wszywka i aktualizacja, być pewny the dwa zapytanie w transakcja.  W Ten Sposób lub oba zapytanie udawać się lub oba nie udać się… wpólnie.

(Znowu, I zakładać MS SQL być the baza danych.)

       
       

    WSZYWKA W tbl_CEP_Documents (… kolumna….). WARTOŚĆ (......)


           
                   WSZYWKA W tbl_Document_Has_Topic (DocumentID, DocumentTopicID)
                  WYBIÓRKA
                   >
                  , DocumentTopicID
                  OD tbl_CEP_Document_Topic
                 DOKĄD DocumentTopicID WEWNĄTRZ (
                      list= " prawdziwy " >
                  )
               

       


Aktualizacja być troszkę różny. Minuta o minuta w minuta.
 
Inne rozwiązania  

 
programming4us programming4us