Question : Dans une base de données, using une application de ColdFusion, je dois assigner des documents aux matières de document.

Base de données : Serveur 2005 de la milliseconde SQL
Version 8 de ColdFusion

Bonjour. J'avais travaillé sur cette tâche pendant un moment et ai atteint un point auquel je dois demander l'aide.

Tâche en bref : Dans une base de données, je dois assigner des documents aux matières de document.

Histoire :
Le mois dernier, le gdemaria m'a aidé -- très patiemment -- pour construire une application qui permet à un utilisateur de télécharger et contrôler des documents dans une base de données. L'application fonctionne parfaitement et j'ai appris une tonne tandis que le gdemaria me guidait en l'établissant. L'application permet à un utilisateur de créer un document ; télécharger les dossiers (Doc., pdf, images) cet associé avec ce document, et contrôler les méta-données qui concerne le document.

Maintenant, je dois assigner les documents téléchargés aux matières de document.

Tâche en détail :

Fondamentalement je dois ajouter à mon application la capacité de mettre à jour une table : tbl_Document_Has_Topic.

Mes trois tables de fonctionnement sont :

tbl_CEP_Documents (cette table tient des méta-données au sujet des documents de CÈPE) PK : DocumentID
(cette table tient une liste de toutes les matières de document de CÈPE) le PK tbl_CEP_Document_Topic : DocumentTopicID
tbl_Document_Has_Topic (cette table rapporte des tbl_CEP_Documents à tbl_CEP_Document_Topic)

les besoins tbl_Document_Has_Topic seulement deux colonnes :
DocumentID
DocumentTopicID

* DocumentID est le PK dans les tbl_CEP_Documents.
* DocumentTopicID est le PK dans tbl_CEP_Document_Topic.

..... Si j'assigne un DocumentTopicID à un DocumentID, alors ce document sera assigné aux matières correctes de document.

C'est la fonction de tbl_Document_Has_Topic : pour assigner DocumentTopicID à un DocumentID.

Ma tâche est d'inclure, dans mon document éditent l'interface, un menu choisi qui permet à un utilisateur de choisir des matières de document pour assigner à un document.

J'ai ajouté le menu choisi. Veuillez voir l'exemple ici :

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

….Noter le menu choisi « pour assigner ce document aux matières de CÈPE ». Le menu choisi fait une boucle simplement par les 24 matières possibles de document de CÈPE. Ainsi :

1 :
2 :
3 :
4 :
5 :
6 :
7 :
8 :
9 :
10 :
11 :
12 :
13 :
14 :
15 :
16 :
17 :
18 :
19 :
 
CHOISIR DocumentTopicID, DocumentTopic
De tbl_CEP_Document_Topic
ORDRE PAR DocumentTopic
  
 
    

Assigner ce document aux matières de CÈPE
Choisir au moins une matière. Pour choisir plus d'une matière, tenir la clef de CTRL et choisir les matières avec le curseur de souris.



Ce menu choisi fonctionne bien. Noter que cela dans le menu choisi chaque DocumentTopic est appareillé avec son DocumentTopicID correct.

Ainsi, je dois établir une nouvelle question que les mises à jour ajournent tbl_Document_Has_Topic, using les choix à partir du menu choisi.

Où placer cette question, et quelle forme doit la question prendre ?

Un nouveau document devra être assigné aux matières de document ; et, les documents existants devront maintenant et puis changer des matières.

Dans l'application j'ai déjà des questions qui insèrent un nouveau document, et mets à jour un document existant. Est-ce que je dois modifier ces questions existantes, de sorte que les questions mettent à jour tbl_Document_Has_Topic avec des valeurs appropriées de DocumentID et de DocumentTopicID ? Cela semblerait comme la manière de la faire. Et, je devrais créer un intérieur me joins (je pense) pour mettre à jour la table, tbl_Document_Has_Topic.

Est-ce que je pensée suis à ce sujet correctement ?

Je suis très reconnaissant pour tous conseils.

J'appose mon code fonctionnant.

Merci en tant que toujours.

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 :


 





 


 



 
 
  
 
   
 


 


        









  
    
	
			  
	
    
    
			  
	


 
 
 
  NE CHOISIR « rien » À PARTIR des tbl_CEP_Documents
  LÀ OÙ DocumentTitle =  
  ET DocumentID  <> 
  
   
 
  
   
   
	
		   
	
    
      
   
    
    
    
    
				
    
  			  
				  tbl_CEP_Documents de MISE À JOUR
				  PLACER   DocumentTitle = ,
					DocumentType = ,
					DocumentAuthor = ,
				    DocumentAbstract = ,
				    DocumentPublicationDate = ,
				    DateRecordModified =  
				  LÀ OÙ DocumentID =  
			



    
				 
    
    
	
				
					
				 INSERTION DANS des tbl_CEP_Documents
     					(
			            DocumentTitle,
            		    DocumentType,
                		DocumentAuthor,
		                DocumentAbstract,
        		        DocumentPublicationDate,
                		SSMA_TimeStamp
		                )
			     VALEURS (
						  ,
						  ,
						  ,
						  ,
						  ,
		     			  
				         )         
					

		 





    
          choisir max (DocumentID) comme identification
           Des tbl_CEP_Documents
      


        






           
					      
    
    
    

    

    
          
				         
  
		    	
      			
			           
     			       
   			      

			
				    
			
            

			
			
			 INSERTION DANS des tbl_CEP_Files
     			(
                DocumentID,
                Nom de fichier,
				FileExtension,
				FileType,
				FileSize,
                isDeleted
                )
		     VALEURS (
        		  
				  ,
				  ,
				  ,
				  ,
                  , 0
		           )         
				  
  
		     
  
           
              
               
           
         
					   
		         
    	   
       			tbl_CEP_Files de MISE À JOUR
           		PLACER IsDeleted = 1
        		Dans LÀ OÙ FileID ()
      		




		    
					
                    
  
		
				     
                         
                    
    
    


    
    
        


			   
					   
					                
					        
					       	
					         SUPPRESSION des tbl_CEP_Documents
					         LÀ OÙ DocumentID =  
					        
              
 					        
						 

	    
        
        
            
    		

  





       

     
     
  

  
  
  
		    
			




 
  
    
			  
			  
				    choisir * à partir des tbl_CEP_Documents où DocumentID = #val (form.DocumentID) #
			  

  			
			       
			  
    
	




 
			 
			 
#variables.error#

#FormTitle#

CHOISIR DocumentTopicID, DocumentTopic De tbl_CEP_Document_Topic ORDRE PAR DocumentTopic

Document identification : #URL.DocumentID#

Titre de document

Type de document

Auteur de document

Assigner ce document aux matières de CÈPE
Choisir au moins une matière. Pour choisir plus d'une matière, tenir la clef de CTRL et choisir les matières avec le curseur de souris.

Documenter l'abstrait

Date de publication (forme MM/DD/YYYY d'utilisation)

Au-dessous de, voir svp les dossiers actuellement liés au document l'identification #URL.DocumentID#. S'il n'y a aucun dossier lié au document, alors dossier n'apparaîtra pas ci-dessous. Vous avez l'option pour télécharger un dossier (pdf, Doc., dossier d'image), qui associera le dossier au document l'identification #URL.DocumentID#.

choisir * à partir des tbl_CEP_files où DocumentID = #val (form.DocumentID) # et = 0 isDeleted
Nom de fichier Suppression
#getFiles.FileName#

Aucun dossier n'est attaché à ce document.


Le bouton, ci-dessous, supprime ce document, son disque de base de données, et tous les dossiers associés. Utilisation soigneusement.

Réponse : Dans une base de données, using une application de ColdFusion, je dois assigner des documents aux matières de document.

>
> choisir max (DocumentID) comme identification
>           Des tbl_CEP_Documents
>


Si vous employez cette question pour rechercher l'identification d'un document nouvellement inséré… ne pas faire ; -) Dans un environnement avec beaucoup d'utilisateurs concourants il est susceptible de renvoyer l'identification fausse  

La meilleure manière d'obtenir la valeur d'une colonne de incrémentation automatique est d'employer l'attribut de « résultat » de cfquery de CF8.  Après qu'une INSERTION, CF peuple la structure de résultat avec l'identification de nouveau record. Le nom principal varie selon votre type de DB

Exemple : Pour une base de données de la milliseconde SQL le nom principal est IDENTITYCOL

result= " newDocument " >
   INSERTION DANS des tbl_CEP_Documents (… colonnes….). VALEURS (......)



     Le nouveau documentID est #newDocument.IDENTITYCOL#
cfoutput>


> J'ai déjà des questions qui insèrent un nouveau document, et mets à jour un document existant…
> Fais je dois modifier ces questions existantes

Seulement la question d'INSERTION, ainsi vous peut rechercher le DocumentID nouvellement inséré.  Employer juste l'attribut de « résultat » comme décrit ci-dessus.  Avec une MISE À JOUR, vous avez déjà l'identification (IE #form.DocumentID#)

Puisque vous modifiez une table séparée, vous emploieriez un cfquery séparé.  Pour de nouveaux documents, faire d'abord l'INSERTION dans des tbl_CEP_Documents.  Une fois que vous avez le nouveau documentID, vous pouvez l'employer pour insérer les matières choisies dans votre deuxième table.

Puisque les identifications de matière viennent de votre tbl_CEP_Document_Topic, vous pouvez employer un CHOISI pour saisir ajoutez toutes les matières choisies de cette table, et insérez les valeurs dans tbl_Document_Has_Topic d'un seul coup.  

Pour les les deux les insertions et mises à jour, être sûr d'envelopper les deux questions dans une transaction.  Ainsi ou les deux questions réussissent ou toutes les deux échouent… ensemble.

(Encore, je suppose que la milliseconde SQL est la base de données.)

       
       

    INSERTION DANS des tbl_CEP_Documents (… colonnes….). VALEURS (......)


           
                   INSERTION DANS tbl_Document_Has_Topic (DocumentID, DocumentTopicID)
                  CHOISI
                   >
                  , DocumentTopicID
                  De tbl_CEP_Document_Topic
                 LÀ OÙ DocumentTopicID DEDANS (
                      list= " vrai " >
                  )
               

       


Les mises à jour sont un peu différentes. Plus à ce sujet dans une minute.
 
Autres solutions  
  •  MS Excel 2007 et pdf - l'exportation vers le pdf prend de longues heures !
  •  Dans le Perl, comment j'ajoute une valeur à la liste, puis le contrôle pour voir si la valeur existent avant d'ajouter une nouvelle valeur
  •  Comment fais j'initialiser de la HP BL460c G6 de san et de la HP XP 240000
  •  Comment fais j'employer une clef de permis de volume sur un ordinateur de HP avec du CD de restauration
  •  Emplacement primaire de deux SCCM dans l'annuaire actif
  •  L'initiateur et la HP D2D de l'iSCSI R2 du serveur 2008 de Windows GERCENT l'issue
  •  Stocker le dossier dans le mysql using connector.net et le champ de goutte
  •  Carte vidéo d'USB - bit 32 sur le matériel travaillant au niveau du bit 64 ?
  •  asp.net que j'essaye de convertir une forme de HTML en forme d'aspx ou ? ce qui jamais. Aide du besoin sur la façon dont à à elle.
  •  Winzip 12 issues de secours du travail ?
  •  
    programming4us programming4us