Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Passthrough query problem

Îåêßíçóå áðü ôï ìÝëïò neoklis. Τελευταία δημοσίευση από το μέλος neoklis στις 13-11-2007, 08:05. Υπάρχουν 9 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  12-11-2007, 11:33 37230

    Passthrough query problem

    Καλημέρα παιδιά,

     

    Διάβασα στον χώρο σας ότι όταν έχουμε back-end βαση SQL Server και Front-end Access καλό είναι τα query να είναι passthrough καθώς η ταχύτητα με την οποία θα εκτελούνται τα ερωτήματα θα είναι μεγαλύτερη από ότι με τα κοινά query.

     

    http://www.dotnetzone.gr/cs/forums/thread/37136.aspx

     

    Έφτιαξα πραγματικά ένα query συνδέθηκα σε μια database και το query εκτελέσθηκε με επιτυχία. Τα πράγματα δυσκολεύουν μετά από αυτό, γιατί τώρα θέλω να δοκιμάσω να φτιάξω ένα καινούριο query το οποίο όμως θα έχει δύο-τρεις πίνακες από δύο ή τρεις διαφορετικές βάσεις του SQL Server.

     

    Μπορώ λοιπόν στο ODBC Connect Str να του ορίσω data sources περισσότερα της μία βάσης;

     

    Ευχαριστώ


    Dionisis
  •  12-11-2007, 12:15 37234 σε απάντηση της 37230

    Απ: Passthrough query problem

    Φτιάξε ένα stored procedure στον SQL Server και κάνε access τους πίνακες με χρήση full name (πχ northwind.dbo.customers), οπότε μέσα από την Access θα καλείς την stored procedure που με τη σειρά της θα μαζεύει τα data από τους τρεις πίνακες.


    Vir prudens non contra ventum mingit
  •  12-11-2007, 12:16 37235 σε απάντηση της 37230

    Απ: Passthrough query problem

    Δεν το έχω κάνει ποτέ και δεν νομίζω ότι γίνεται.
    Μια απλή λύση είναι να φτιάξεις ένα passthrough query ανά βάση για να πάρεις τα data σου και να τα κάνεις join σε αυτά τα queries σε ένα απλό access query. Δηλαδή τα passthrough queries θα  χρησιμοποιούνται ως πίνακες για το απλό σου query.
    Δεν ξέρω από άποψη επιδόσεων τι θα γίνει αλλά σίγουρα είναι πιο γρήγορο από να τα έχεις όλα σε απλά queries.


    Manos
  •  12-11-2007, 13:35 37239 σε απάντηση της 37235

    Απ: Passthrough query problem

    Ευχαριστώ για τις απαντήσεις σας..

     

    Με event procedures δεν έχω ασχοληθεί ποτέ, χαίρομαι όμως γιατί μου δίνεται η ευκαρεία να παίξω με καινούρια πράγματα.. Από μια ματιά που έριξα η δημιουργία μιας event procedure δεν είναι δύσκολο. Αυτό όμως που δεν κατάλαβα είναι με ποιόν τρόπο μπορώ να την καλέσω... Η εντολή είναι η execute ονομα παράμετροι αλλά δεν έχω καταλάβει αυτό που μου επιστρέφει πως μπορώ για παράδειγμα να το βάλω σε ένα subform ή να το επεξεργαστώ όπως έκανα με ένα απλό SQL ερώτημα ανοίγοντας το με open.

     

    Rec.Open (SqlString), CurrentProject.Connection, adOpenKeyset, adLockOptimistic

     


    Dionisis
  •  12-11-2007, 14:34 37240 σε απάντηση της 37239

    Απ: Passthrough query problem

    Όχι event procedures, stored procedures. Μπορείς να τις καλέσεις με την exec όπως είπες. Οι stored procedures στον SQL Server επιστρέφουν result sets και δεν δουλεύουν υποχρεωτικά μέσα από τις input/output παραμέτρους. Αν για παράδειγμα γράψεις μέσα σε μία stored procedure

    SELECT * FROM Northwind.dbo.Customers

    και την καλέσεις, θα πάρεις πίσω τις ανάλογες εγγραφές.


    Vir prudens non contra ventum mingit
  •  12-11-2007, 15:06 37241 σε απάντηση της 37239

    Απ: Passthrough query problem

    Για να καλέσεις μια Store Procedure μέσα από Access την καλείς με απλό select. Δηλαδή
    Έστω ότι έχεις φτιάξει τη Store Procedure στον sql server: myProc.
    Για να την καλέσεις γράφεις στην access στο sql string: Select myproc
    βάζεις και το Connectionstring του sqlserver και είσαι οκ

    Manos
  •  12-11-2007, 15:34 37245 σε απάντηση της 37241

    Απ: Passthrough query problem

    Ευχαριστώ πολύ παιδιά.. έχω αρκετά να δοκιμάσω.. για να δούμε..
    Dionisis
  •  12-11-2007, 18:19 37260 σε απάντηση της 37245

    Απ: Passthrough query problem

    Να 'μαι πάλι...

    Την store procedure την έτρεξα στο Management Studio και εκτελείται κανονικά.

     

    CREATE PROCEDURE dbo.Jobs_Date AS

    SELECT     TOP 100 PERCENT dbo.PMMT_Jobs.JobID, dbo.PMMT_Jobs.MemoJobID, dbo.PMMT_Jobs.ProgrHr, dbo.PMMT_Jobs.SDate, dbo.PMMT_Jobs.EDate,

                          dbo.PMMT_Jobs.JobDescr, dbo.PMMT_Jobs.JobKindId, dbo.PMMT_JobKind.JobKindDescr, dbo.PMMT_Jobs.StopTime, dbo.PMMT_Jobs.StartTime,

                          dbo.PMMT_Jobs.MachId, dbo.PMMT_Jobs.DeptId, dbo.PMMT_Jobs.MechId, dbo.PMMT_Jobs.Complete, dbo.PMMS_TBL_MACHINES.MACHINE,

                          dbo.PMMS_TBL_MACHINES.CostId, dbo.PMMS_TBL_MECHANISMS.MECHANISM, dbo.PMMT_Jobs.JobComments

    FROM         dbo.PMMT_Jobs INNER JOIN

                          dbo.PMMT_JobKind ON dbo.PMMT_Jobs.JobKindId = dbo.PMMT_JobKind.JobKindId INNER JOIN

                          dbo.PMMS_TBL_MACHINES ON dbo.PMMT_Jobs.MachId = dbo.PMMS_TBL_MACHINES.MACHINEID INNER JOIN

                          dbo.PMMS_TBL_MECHANISMS ON dbo.PMMT_Jobs.MechId = dbo.PMMS_TBL_MECHANISMS.MECHANISMID

    ORDER BY dbo.PMMT_Jobs.SDate, dbo.PMMT_Jobs.EDate

    GO

     

    Στην τελευταία γραμμή όπου και θέλω να κάνω open την Jobs_Date μου χτυπάει το εξής error:

    [Microsoft][ODBC SQL Server Driver][SQL Server]Invalid column name 'Jobs_Date'.

     

     

    Static Rec As New ADODB.Recordset

    Static StrConn As Connection

    Static Sql As String

     

    Set StrConn = New Connection

    Sql = "SELECT Jobs_Date"

    StrConn.ConnectionString = "Driver={SQL Server};Server=Data_s;Database=SOL;Trusted_Connection=Yes;"

    StrConn.Open

    Rec.Open Sql, StrConn, adOpenKeyset, adLockOptimistic

     

     


    Dionisis
  •  12-11-2007, 23:24 37265 σε απάντηση της 37260

    Απ: Passthrough query problem

    Δοκίμασε χωρίς το SELECT


    Vir prudens non contra ventum mingit
  •  13-11-2007, 08:05 37274 σε απάντηση της 37265

    Απ: Passthrough query problem

    Παιδιά τι να πω.. είμαι τόσο χαρούμενος που δεν βρίσκω λόγια να το περιγράψουν.. Έπαιξε!!!! Χιουχου!!!!

    Ο χρόνος στο συγκεκριμένο ερώτημα μειώθηκε κατά 90%!!!! Απίστευτο αποτέλεσμα...! Είστε καταπληκτικοί! Δεν θα κλείσω ακόμα το topic καθώς μπορεί να επανέλθω για διευκρινιστικές ερωτήσεις...

    Σας ευχαριστώ


    Dionisis
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems