Vraag : In een gegevensbestand, die een toepassing ColdFusion gebruiken, moet ik documenten aan documentonderwerpen toewijzen.

Gegevensbestand: De Server 2005 van lidstaten SQL
Versie 8 van ColdFusion

Hello. Ik heb gewerkt aan deze taak voor een tijdje en een punt bereikt waarop ik om hulp moet vragen.

Taak kortom: In een gegevensbestand, moet ik documenten aan documentonderwerpen toewijzen.

Geschiedenis:
Vorige maand, hielp gdemaria me -- zeer geduldig -- om een toepassing te construeren die een gebruiker toestaat om documenten in een gegevensbestand te uploaden en te leiden. De toepassing werkt volkomen en ik leerde een ton terwijl gdemaria me in de bouw van het begeleidde. De toepassing staat een gebruiker toe om een document te creëren; upload dossiers (doc., PDF, beelden) dat met dat document associëren, en beheer meta-gegevens dat tot het document behoort.

Nu, moet ik geuploade documenten aan documentonderwerpen toewijzen.

Taak in detail:

Fundamenteel moet ik aan mijn toepassing de capaciteit toevoegen om een lijst bij te werken: tbl_Document_Has_Topic.

Mijn drie werkende lijsten zijn:

tbl_CEP_Documents (deze lijst houdt meta-gegevens over de Documenten van het EEKHOORNTJESBROOD) PK: DocumentID
tbl_CEP_Document_Topic (deze lijst houdt een lijst van alle Onderwerpen van het Document van het EEKHOORNTJESBROOD) PK: DocumentTopicID
tbl_Document_Has_Topic (deze lijst brengt tbl_CEP_Documents met tbl_CEP_Document_Topic met elkaar in verband)

tbl_Document_Has_Topic behoeften slechts twee kolommen:
DocumentID
DocumentTopicID

* DocumentID is PK in tbl_CEP_Documents.
* DocumentTopicID is PK in tbl_CEP_Document_Topic.

..... Als ik een DocumentTopicID aan een DocumentID toewijs, dan zal dat Document aan het correcte Onderwerp van het Document worden toegewezen.

Dat is de functie van tbl_Document_Has_Topic: om DocumentTopicID aan een DocumentID toe te wijzen.

Mijn taak is te omvatten, in mijn document geef interface, een uitgezocht menu uit dat een gebruiker toestaat om de Onderwerpen van het Document te verkiezen om aan een document toe te wijzen.

Ik voegde het uitgezochte menu toe. Gelieve te zien hier een voorbeeld:

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

….Merk op het uitgezochte menu „dit Document aan de Onderwerpen van het EEKHOORNTJESBROOD“ toewijst. De uitgezochte menulijnen door mogelijk EEKHOORNTJESBROOD 24 documenteren eenvoudig onderwerpen. Aldus:

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

 
SELECTEER DocumentTopicID, DocumentTopic
VAN tbl_CEP_Document_Topic
ORDE DOOR DocumentTopic
  
 
    

Wijs dit Document aan de Onderwerpen van het EEKHOORNTJESBROOD toe
Kies minstens één onderwerp. Om meer dan één onderwerp te selecteren, houd de sleutel van CTRL en selecteer onderwerpen met de muiscurseur.



Dat Uitgezochte menu werkt goed. Merk op dat in het uitgezochte menu elke DocumentTopic met zijn correcte DocumentTopicID in paren gerangschikt is.

Zo, moet ik een nieuwe vraag bouwen die tbl_Document_Has_Topic lijst bijwerkt, gebruikend de selecties uit het Uitgezochte menu.

Waar te om deze vraag, en welke vorm de vraag te plaatsen zal nemen?

Een nieuw document zal aan documentonderwerpen moeten worden toegewezen; en, de bestaande documenten zullen onderwerpen moeten nu en dan veranderen.

In de toepassing heb ik reeds vragen die een nieuw document, opnemen en een bestaand document bijwerken. Moet ik die bestaande vragen wijzigen, zodat de vragen tbl_Document_Has_Topic met aangewezen waarden DocumentID en DocumentTopicID zullen bijwerken? Dat zou als de manier schijnen om het te doen. En, ik zou binnen moeten creëren toetreed (ik denk) om de tbl_Document_Has_Topic lijst bij te werken.

Ben het denken van I correct over dit?

Ik ben zeer dankbaar voor om het even welke raad.

Ik voeg mijn het werk code toe.

Dank u zoals altijd.

Eric 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:



 





 


 



 
 
  
 
   
 


 


        









  
    
	
			  
	
    
    
			  
	


 
 
 
  SELECTEER „niets“ VAN tbl_CEP_Documents
  WAAR DocumentTitle =  
  EN DocumentID  <> 
  
   
 
  
   
   
	
		   
	
    
      
   
    
    
    
    
				
    
  			  
				  tbl_CEP_Documents van de UPDATE
				  VASTGESTELDE   DocumentTitle = ,
					DocumentType = ,
					DocumentAuthor = ,
				    DocumentAbstract = ,
				    DocumentPublicationDate = ,
				    DateRecordModified =  
				  WAAR DocumentID =  
			



    
				 
    
    
	
				
					
				 TUSSENVOEGSEL IN tbl_CEP_Documents
     					(
			            DocumentTitle,
            		    DocumentType,
                		DocumentAuthor,
		                DocumentAbstract,
        		        DocumentPublicationDate,
                		SSMA_TimeStamp
		                )
			     WAARDEN (
						  ,
						  ,
						  ,
						  ,
						  ,
		     			  
				         )         
					

		 





    
          selecteer MAXIMUM (DocumentID) als identiteitskaart
           VAN tbl_CEP_Documents
      


        






           
					      
    
    
    

    

    
          
				         
  
		    	
      			
			           
     			       
   			      

			
				    
			
            

			
			
			 TUSSENVOEGSEL IN tbl_CEP_Files
     			(
                DocumentID,
                FileName,
				FileExtension,
				FileType,
				FileSize,
                isDeleted
                )
		     WAARDEN (
        		  
				  ,
				  ,
				  ,
				  ,
                  , 0
		           )         
				  
  
		     
  
           
              
               
           
         
					   
		         
    	   
       			UPDATE tbl_CEP_Files
           		VASTGESTELDE IsDeleted = 1
        		WAAR FileID binnen ()
      		




		    
					
                    
  
		
				     
                         
                    
    
    


    
    
        


			   
					   
					                
					        
					       	
					         SCHRAP VAN tbl_CEP_Documents
					         WAAR DocumentID =  
					        
              
 					        
						 

	    
        
        
            
    		

  





       

     
     
  

  
  
  
		    
			




 
  
    
			  
			  
				    selecteer * uit tbl_CEP_Documents waar DocumentID = #val (form.DocumentID) #
			  

  			
			       
			  
    
	




 
			 
			 
#variables.error#

#FormTitle#

SELECTEER DocumentTopicID, DocumentTopic VAN tbl_CEP_Document_Topic ORDE DOOR DocumentTopic

Document identiteitskaart: #URL.DocumentID#

De Titel van het document

Het Type van document

De Auteur van het document

Wijs dit Document aan de Onderwerpen van het EEKHOORNTJESBROOD toe
Kies minstens één onderwerp. Om meer dan één onderwerp te selecteren, houd de sleutel van CTRL en selecteer onderwerpen met de muiscurseur.

Documenteer Samenvatting

De Datum van de publicatie (gebruiksvorm MM/DD/YYYY)

Hieronder, te zien gelieve de dossiers momenteel verbonden aan Document identiteitskaart #URL.DocumentID#. Als er geen dossiers verbonden aan het document zijn, dan zullen geen dossiers hieronder verschijnen. U hebt de optie om een dossier (PDF, doc., beelddossier) te uploaden, dat het dossier met Document identiteitskaart #URL.DocumentID# zal associëren.

selecteer * uit tbl_CEP_files waar DocumentID = #val (form.DocumentID) # en isDeleted = 0
Dossier - naam Schrap
#getFiles.FileName#

Geen Dossiers zijn In bijlage aan dit Document.


De knoop, hieronder, schrapt dit document, zijn gegevensbestandverslag, en alle bijbehorende dossiers. Gebruik zorgvuldig.

Antwoord : In een gegevensbestand, die een toepassing ColdFusion gebruiken, moet ik documenten aan documentonderwerpen toewijzen.

>
> selecteer MAXIMUM (DocumentID) als identiteitskaart
>           VAN tbl_CEP_Documents
>


Als u gebruikt dat de vraag om identiteitskaart van een onlangs Opgenomen document terug te winnen… niet; -) In een milieu met heel wat gezamenlijke gebruikers het waarschijnlijk zal verkeerde identiteitskaart terugkeren  

De beste manier om de waarde van een auto verhogende kolom te krijgen is de attributen CF8 van het cfquery „resultaat“ te gebruiken.  Na een TUSSENVOEGSEL, bevolkt het CF de resultaatstructuur met nieuwe verslagidentiteitskaart. De belangrijkste naam vari�ërt afhankelijk van uw db type

Voorbeeld: Voor een gegevensbestand van lidstaten SQL is de belangrijkste naam IDENTITYCOL

result= " newDocument " >
   TUSSENVOEGSEL IN tbl_CEP_Documents (… kolommen….). WAARDEN (......)



     Nieuwe documentID is #newDocument.IDENTITYCOL#
cfoutput>


> Ik heb reeds vragen die een nieuw document, opnemen en een bestaand document… bijwerken
> Moet ik die bestaande vragen wijzigen

Slechts kan de vraag van het TUSSENVOEGSEL, zodat u onlangs opgenomen DocumentID terugwinnen.  Gebruik enkel de „resultaat“ attributen zoals hierboven beschreven.  Met een UPDATE, hebt u reeds identiteitskaart (d.w.z. #form.DocumentID#)

Aangezien u een afzonderlijke lijst wijzigt, zou u een afzonderlijke cfquery gebruiken.  Voor nieuwe documenten, doe eerst het TUSSENVOEGSEL in tbl_CEP_Documents.  Zodra u nieuwe documentID hebt, kunt u het gebruiken om de geselecteerde onderwerpen in uw tweede lijst op te nemen.

Sinds onderwerpid's gekomen uit uw tbl_CEP_Document_Topic, kunt u UITGEZOCHT gebruiken om te grijpen toevoegt alle geselecteerde onderwerpen van die lijst, en opneemt de waarden in één keer in tbl_Document_Has_Topic.  

Voor zowel de tussenvoegsels als updates, ben zeker om de twee vragen in een transactie te verpakken.  Zo of beide vragen slagen of allebei ontbreken samen….

(Opnieuw, veronderstel ik lidstaten SQL het gegevensbestand. zijn)

       
       

    TUSSENVOEGSEL IN tbl_CEP_Documents (… kolommen….). WAARDEN (......)


           
                   TUSSENVOEGSEL IN tbl_Document_Has_Topic (DocumentID, DocumentTopicID)
                  SELECTEER
                   >
                  , DocumentTopicID
                  VAN tbl_CEP_Document_Topic
                 WAAR DocumentTopicID BINNEN (
                      list= " waar " >
                  )
               

       


De updates zijn een weinig verschillend. Meer over dat in een minuut.
 
Andere oplossingen  

 
programming4us programming4us