focus Δημοσ. 30 Απριλίου 2010 Δημοσ. 30 Απριλίου 2010 Έχω δυο πίνακες σε MS SQL Server 2005. Ο ένας λέγετε προϊόντα και ο άλλος pdf_files. Είναι συνδεμένοι με relationship όπου το productID είναι primary Key στον Products και Foreign στον πίνακα pdf_files. Στον πίνακα pdf_files ανεβάζω το path του pdf . Ορισμένα προϊόντα έχουν pdf αρχεία, άλλα όμως δεν έχουν. Οπότε στην ASP σελίδα μου, εκεί που τραβάει ένα recordset το συγκεκριμένο προϊόν που δεν έχει pdf έχω πρόβλημα. Ψάχνει στον πίνακα pdf_files να βρει record όπου δεν υπάρχει. Γι αυτό σκάει error. Έχετε καμιά πρόταση για το πώς θα το ξεπεράσω αυτό το θέμα? Προσπάθησα με το where exists άλλα μάλλον κάπου κάνω λάθος.
patrickdrd Δημοσ. 30 Απριλίου 2010 Δημοσ. 30 Απριλίου 2010 αν καταλαβα καλα θες να φερεις ολα τα προϊοντα ειτε εχουν pdf (σ'αυτη την περιπτωση να σου γυρναει και το path) ή οχι να ρωτησω, join κανεις στο query σου; δοκιμασε το εξης: >from products prod left outer join pdf_files pdf on prod.productID = pdf.productID το "prod" και το "pdf" ειναι τα λεγομενα aliases, "παρατσουκλια" ας πουμε των original πινακων good luck
kfyros Δημοσ. 30 Απριλίου 2010 Δημοσ. 30 Απριλίου 2010 βάλε κανένα if στην asp. Αν το recordset είναι άδειο μην φτιάχνεις anchor ή mime tag (που θα είναι άδεια), ή για να είναι σουλουπωμένη η σελίδα, βάζε ένα "no file" image - anchor - tag whatever (δεν ξέρω τι τα κάνεις τα pdf). Δες στο http://www.w3schools.com για τις εντολές του ado.
focus Δημοσ. 1 Μαΐου 2010 Μέλος Δημοσ. 1 Μαΐου 2010 O κώδικας που τραβάει το pdf είναι αυτός. Πως προτείνεις να μπει το if? ><a href="<%=(Recordsetpdf.Fields.Item("").Value)%>" target="_blank"><img src="images/pdf_icon.jpg" width="23" height="26" /></a>
cocoflop Δημοσ. 2 Μαΐου 2010 Δημοσ. 2 Μαΐου 2010 Ναι η καλύτερη λύση είναι πρώτα να κάνεις έλεγχο και εφ' όσον υπάρχει PDF τότε να εμφανιστεί το link, έτσι λέει ο kfyros. Οπότε θα μαγειρέψεις λίγο την λογική παρουσίασης, δεν θα βασιστείς στα αυτόματα. Για παράδειγμα (δεν ξέρω ASP εμπειρικά τα λέω): 1. Tο προϊόν έχει αρχείο PDF (τσεκάρεις λίγο πριν εμφανίσεις τα κόλπα); SELECT pdf_file WHERE productID='ID_PROINTOS_APO_ASP' 2. Προετοίμασε μια μεταβλητή string Asp με όνομα pdfFile = "" (Κενό string) 3. Εάν όντως υπάρχει ένα αποτέλεσμα από την βάση δεδομένων τότε δώσε στην μεταβλητή pdfFile το value του αυτού του αποτελέσματος που βρήκες.
focus Δημοσ. 3 Μαΐου 2010 Μέλος Δημοσ. 3 Μαΐου 2010 Ευχαριστώ πολύ όντως ο Kfyros είχε δίκιο χρειαζόμουνα if μέσα στον κώδικα μου. Πρόβλημα λύθηκε.
kfyros Δημοσ. 5 Μαΐου 2010 Δημοσ. 5 Μαΐου 2010 O κώδικας που τραβάει το pdf είναι αυτός. Πως προτείνεις να μπει το if? ><a href="<%=(Recordsetpdf.Fields.Item("").Value)%>" target="_blank"><img src="images/pdf_icon.jpg" width="23" height="26" /></a> Ναι, κάπως έτσι > <% dim foundfile foundfile=0 IF LEN(Recordsetpdf.Fields.Item("").Value)>0 THEN IF CreateObject("Scripting.FileSystemObject").FileExists(Recordsetpdf.Fields.Item("").Value) THEN foundfile=1 %> <a href="<%=(Recordsetpdf.Fields.Item("").Value)%>" target="_blank"><img src="images/pdf_icon.jpg" width="23" height="26" /></a> <% END IF END IF IF foundfile=0 THEN <img src="images/blank_image.jpg" width="23" height="26" /> END IF %>
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.