Προς το περιεχόμενο

SQL where exists


focus

Προτεινόμενες αναρτήσεις

Δημοσ.

Έχω δυο πίνακες σε 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 άλλα μάλλον κάπου κάνω λάθος.

Δημοσ.

αν καταλαβα καλα θες να φερεις ολα τα προϊοντα ειτε εχουν pdf (σ'αυτη την περιπτωση να σου γυρναει και το path) ή οχι

 

να ρωτησω, join κανεις στο query σου;

δοκιμασε το εξης:

 

>from products prod left outer join pdf_files pdf on prod.productID = pdf.productID

 

το "prod" και το "pdf" ειναι τα λεγομενα aliases, "παρατσουκλια" ας πουμε των original πινακων ;)

 

good luck ;)

Δημοσ.

βάλε κανένα if στην asp.

 

Αν το recordset είναι άδειο μην φτιάχνεις anchor ή mime tag (που θα είναι άδεια),

ή για να είναι σουλουπωμένη η σελίδα, βάζε ένα "no file" image - anchor - tag whatever (δεν ξέρω τι τα κάνεις τα pdf).

 

 

Δες στο http://www.w3schools.com για τις εντολές του ado.

Δημοσ.

O κώδικας που τραβάει το pdf είναι αυτός. Πως προτείνεις να μπει το if?

><a href="<%=(Recordsetpdf.Fields.Item("").Value)%>" target="_blank"><img src="images/pdf_icon.jpg" width="23" height="26" /></a>

Δημοσ.

Ναι η καλύτερη λύση είναι πρώτα να κάνεις έλεγχο και εφ' όσον υπάρχει PDF τότε να εμφανιστεί το link, έτσι λέει ο kfyros. Οπότε θα μαγειρέψεις λίγο την λογική παρουσίασης, δεν θα βασιστείς στα αυτόματα.

 

Για παράδειγμα (δεν ξέρω ASP εμπειρικά τα λέω):

 

1. Tο προϊόν έχει αρχείο PDF (τσεκάρεις λίγο πριν εμφανίσεις τα κόλπα);

SELECT pdf_file WHERE productID='ID_PROINTOS_APO_ASP'

 

2. Προετοίμασε μια μεταβλητή string Asp με όνομα pdfFile = ""

(Κενό string)

 

3. Εάν όντως υπάρχει ένα αποτέλεσμα από την βάση δεδομένων τότε δώσε στην μεταβλητή pdfFile το value του αυτού του αποτελέσματος που βρήκες.

Δημοσ.

Ευχαριστώ πολύ όντως ο Kfyros είχε δίκιο χρειαζόμουνα if μέσα στον κώδικα μου. Πρόβλημα λύθηκε.

Δημοσ.
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
%>

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...