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

 

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

Εφαρμογή με classic asp και MS Access, μεταφορά δεδομένων σε Sql Server.

Îåêßíçóå áðü ôï ìÝëïò tasos. Τελευταία δημοσίευση από το μέλος tasos στις 21-03-2011, 09:55. Υπάρχουν 16 απαντήσεις.
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  03-02-2011, 16:08 62999

    Εφαρμογή με classic asp και MS Access, μεταφορά δεδομένων σε Sql Server.

    Καλησπέρα σας, 

        Έχω μια εφαρμογή γραμμένη σε asp και η βάση δεδομένων είναι σε MS Access. Αποφασίσαμε λοιπόν να αναβαθμίσουμε την εφαρμογή και να μετατρέψουμε τη ΒΔ σε Sql Server. Αφού έκανα import τα δεδομένα με το Management Studio άρχισα να ελέγχω τον κώδικα. Αφού έλυσα κάποια θέματα με την ονομασία πεδίων, από queries που έγιναν όψεις με copy paste έχω ένα πρόβλημα στο insert των εγγραφών. Σας δίνω ένα απλό παράδειγμα παρακάτω, που κάνει εισαγωγή στον πίνακα "Mail".

    Set Rst = Server.CreateObject("ADODB.Recordset")
    Rst.Open "Mail",Cn,2,3
    Rst.AddNew
    	Rst.Fields(1)=trim(request.form("MName"))
    	Rst.Fields(2)=trim(request.form("MAddress"))
    	Rst.Fields(3)=trim(request.form("MCity"))
    	Rst.Fields(4)=trim(request.form("MZipCode"))
    	Rst.Fields(5)=trim(request.form("MCountry"))
    	Rst.Fields(6)=trim(request.form("MTele"))
    	Rst.Fields(7)=trim(request.form("MMobile"))
    Rst.Update
    MailID=Rst.fields(0)
    Rst.Close
    Έτσι όπως είναι γραμμένος ο κώδικας, το id της νέας εγγραφής αποθηκεύεται στο MailID. Ή τουλάχιστον αυτό γινόταν με την Access. Τώρα με τον sql server δεν επιστρέφει κάποια τιμή. Ο μόνος τρόπος που βρήκα για να πάρω το νέο ID είναι να καλέσω μετά την Rst.Update την Rst.MoveLast, όπου και μετά το MailID έχει τη τιμή που θέλω. Από όσο καταλαβαίνω στην περίπτωση που δύο insert στον ίδιο πίνακα γίνουν ταυτόχρονα υπάρχει ο κίνδυνος να πάρουν και οι δύο το ίδιο ID και όχι ο καθένας το δικό του. 

    Υπάρχει κάποιος τρόπος που να αποφεύγει αυτό το σενάριο, χωρίς να χρειαστεί να ξαναγράψω κάθε insert στην εφαρμογή; 


    Τάσος Καραγιάννης

    Baby debugging steps...
    Δημοσίευση στην κατηγορία: ,
  •  03-02-2011, 21:31 63007 σε απάντηση της 62999

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Έλα συμπολεμιστή!

    Που πήγες και έμπλεξες με τα recordset... λοιπόν, ρίξε μια ματιά εδώ: How to retrieve the value of the autonumber (identity) column after adding and updating a record in ADO-VB?

    Μην σε απασχολεί που είναι VB, είναι το ίδιο πράγμα. Αυτό που του λέει είναι ότι ΔΕΝ πρέπει να κλείσει το connection για να πάρει το Identity. 

    Οπότε φτιάξε μία function που να τσιμπάει το εκάστοτε id, και πάνε κόλλα την πριν το close.

    Α, πρέπει να φτιάξεις ένα adodb.command που να κάνει αυτήν την δουλειά :)

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  03-02-2011, 21:39 63008 σε απάντηση της 63007

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Εναλλακτικά βέβαια, θα μπορούσες να τροποποιήσεις την πατέντα που έκανες και να την κάνεις πιο ασφαλή: το recordset έχει μέθοδο filter. Μπορείς να κάνεις ένα filter με τα στοιχεία που έχεις ήδη από την φόρμα. Αυτό που θα απομείνει θα είναι η τελευταία εγγραφή που έβαλες.

    Βέβαια κοστίζει πολύ. Επίσης εάν είναι εφικτό να υπάρχουν πανομοιότυπες εγγραφές, πάλι πρόμπλεμ... αν και θα μπορούσες να πάρεις την τελευταία.

    Το θέμα είναι ότι αυτά είναι μαιμουδιές και πατέντες, αλλά εάν δεν δουλέψει τίποτα άλλο, γιατί όχι;

    Και στο κάτω κάτω εάν ο πελάτης δεν πληρώνει για νέα εφαρμογή, αυτό φτάνει και περισσεύει!

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  03-02-2011, 22:16 63010 σε απάντηση της 63007

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Έλα ρε Δήμο, τι να πω με μπλέξανε...Stick out tongue

    Πολύ καλό το αρθράκι που βρήκες! Η function που λες πρέπει να εκτελεί το "SELECT SCOPE IDENTITY();" στο ανοιχτό recordset, σωστά;

    Πάντως, αυτό που λένε σε ένα σημείο είναι ότι μπορείς να βάλεις το property adResyncAutoIncrement στο recordset και όταν καλέσεις την UpdateBatch (και όχι την update) να κάνει resync και να φέρει ξανά το row, μαζί με το νέο id. Και ψάχνοντας λοιπόν να δω πως θα ορίσω αυτό το property βρήκα εδώ (http://www.tech-archive.net/Archive/Data/microsoft.public.data.ado/2006-08/msg00209.html) το εξής sample:

    RS.Properties("Update Resync") = adResyncInserts + adResyncAutoIncrement
    RS.Properties("Resync Command") = "SELECT * FROM myTable WHERE ID IN (SELECT @@IDENTITY FROM myTable)"
    Βέβαια έχει μία λίστα με ενστάσεις, και μία από αυτές είναι το performance.

    Και μία δεύτερη ερώτηση που προέκυψε με τα όσα διάβασα σήμερα σχετικά με το ADO: Στον κώδικα μου, όταν καλώ το Rst.Open "Mail",Cn,2,3, φέρνει όλα τα rows του πίνακα Mail; Είναι δηλαδή ισοδύναμο με το Rst.Open "SELECT * FROM Mail",Cn,2,3;


     


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  03-02-2011, 22:28 63011 σε απάντηση της 63008

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    dimos.homatas:
    Εναλλακτικά βέβαια, θα μπορούσες να τροποποιήσεις την πατέντα που έκανες και να την κάνεις πιο ασφαλή: το recordset έχει μέθοδο filter. Μπορείς να κάνεις ένα filter με τα στοιχεία που έχεις ήδη από την φόρμα. Αυτό που θα απομείνει θα είναι η τελευταία εγγραφή που έβαλες.

    Βέβαια κοστίζει πολύ. Επίσης εάν είναι εφικτό να υπάρχουν πανομοιότυπες εγγραφές, πάλι πρόμπλεμ... αν και θα μπορούσες να πάρεις την τελευταία.

    Το θέμα είναι ότι αυτά είναι μαιμουδιές και πατέντες, αλλά εάν δεν δουλέψει τίποτα άλλο, γιατί όχι;

    Και στο κάτω κάτω εάν ο πελάτης δεν πληρώνει για νέα εφαρμογή, αυτό φτάνει και περισσεύει!

    Να βάλω filter με όλα τα πεδία για τα οποία έδωσα τιμές. Καλή ιδέα, αν τελικά καταλήξω στη μαϊμουδιά! Stick out tongue

    Το project είναι μία αρκετά μεγάλη υλοποίηση που έγινε με asp και access. Και ήρθε η ώρα της αναβάθμισης σε κάτι πιο σύγχρονο. Σε 1η φάση θέλουμε να πάει σε sql server και ο κύριος λόγος είναι οι άλλες εφαρμογές μας που είναι asp.net να μπορέσουν να δουν αυτά τα δεδομένα (που μέχρι τώρα δεν μπορούσαν). Οπότε είπαμε να κάνουμε τη μετάβαση σε sql server, και έτσι να "ενώσουμε" τις εφαρμογές μας. Η 1η φάση είναι σε επίπεδο δεδομένων και μετά ξεκινάμε με την ενοποίηση τους σε μία μεγάλη εφαρμογή όπου όλα θα είναι όμορφα κ συμμαζεμένα. Smile



    Τάσος Καραγιάννης

    Baby debugging steps...
  •  03-02-2011, 22:34 63012 σε απάντηση της 63010

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Ναι, και μάλιστα δεν είναι disconnected σαν αυτά που έχουμε στο ADO.NET. Από εκεί βγαίνει και το filter. 

    Βέβαια μπορείς να έχεις και σύνταξη πχ

    dim rs as new adodb.recordset
    rs.open "select whatever", connection, cursortype, locktype
    'do stuff
    rs.close
    ΚΑΙ:
    set rs = nothing (έτσι για να μην ξεχνιόμαστε!)


    Πολύ ρετρό μιλάμε... και όμως έχω εφαρμογές που παίζουν χρόνια και χρόνια με αυτά!

    Ευτυχώς που τα αφήσαμε πίσω μας... αν και για vbscript καλό είναι το adodb.

    Τι να σου πω Τάσο, εφ'όσον το να το πετάξεις και να το κάνεις καινούριο δεν αποτελεί viable option, κάντο με τον πιο ανώδυνο (για σένα) τρόπο.

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  03-02-2011, 22:36 63013 σε απάντηση της 63011

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    tasos:

    Να βάλω filter με όλα τα πεδία για τα οποία έδωσα τιμές. Καλή ιδέα, αν τελικά καταλήξω στη μαϊμουδιά! Stick out tongue

    Θα δουλέψει, και μάλιστα εκτελείται στο client... Νομίζω! Δεν ξαναρωτά τον server.


    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  03-02-2011, 22:38 63014 σε απάντηση της 63013

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Αν και off topic, θα ήθελα να σας συγχαρώ όλους εσάς που μου θυμίσατε τα χρόνια της νιότης μου :)


    Σωτήρης Φιλιππίδης

    DotSee Web Services

    View Sotiris Filippidis's profile on LinkedIn

    DotNetNuke them!
  •  03-02-2011, 22:41 63015 σε απάντηση της 63012

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    dimos.homatas:
    Ναι, και μάλιστα δεν είναι disconnected σαν αυτά που έχουμε στο ADO.NET. Από εκεί βγαίνει και το filter. 

    Αυτά είναι! Άρα θα δοκιμάσω κάτι τύπου SELECT * FROM Mail WHERE (1=0), το είδα κάπου κ αυτό. Η αλήθεια είναι ότι ψάχνω για κάποιον ανώδυνο τρόπο, αφού η εφαρμογή θα "ζήσει" για λίγους μήνες ακόμα. 

    cap:
    Αν και off topic, θα ήθελα να σας συγχαρώ όλους εσάς που μου θυμίσατε τα χρόνια της νιότης μου :)

    Χε χε, πολύ δραματικό μου φάνηκε αυτό! Big Smile By the way, το πρώτο μου web application με asp και access ήταν (πρακτική στο πανεπιστήμιο), αλλά πάει πολύς καιρός από τότε κ δεν θυμάμαι σχεδόν τίποτα...


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  03-02-2011, 22:57 63016 σε απάντηση της 63015

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Τάσο πως το έλεγε το άλλο; 

    "THE JANITOR: Converted a VB 6 project to VB.NET"

    Ρετρό! 

    Βλέπω εδώ στην αποθήκη κάτι ωραία modules .BAS με ... 2000 γραμμές γεμάτες functions που πηγαινοφέρνουν διάφορα από και προς την ΒΔ!

    Ένα DAL, κατά κάποιο τρόπο... 

    Τάσο ναι, κλασσικό sql για να τσιμπάς το σχήμα του πίνακα... πω πω πω, έτσι όπως πάμε θα ανοίξουμε και κάνα thread για GW-Basic, είμαι σίγουρος ότι έχω κάπου!!!

    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  04-02-2011, 15:42 63021 σε απάντηση της 63007

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    dimos.homatas:
    Οπότε φτιάξε μία function που να τσιμπάει το εκάστοτε id, και πάνε κόλλα την πριν το close.

    Α, πρέπει να φτιάξεις ένα adodb.command που να κάνει αυτήν την δουλειά :)

    Την έφτιαξα την command και κατέληξα εδώ:

    Set Rst = Server.CreateObject("ADODB.Recordset")
    Rst.Open "Mail",Cn,2,3
    Rst.AddNew
    	Rst.Fields(1)=trim(request.form("MName"))
    	Rst.Fields(2)=trim(request.form("MAddress"))
    	Rst.Fields(3)=trim(request.form("MCity"))
    	Rst.Fields(4)=trim(request.form("MZipCode"))
    	Rst.Fields(5)=trim(request.form("MCountry"))
    	Rst.Fields(6)=trim(request.form("MTele"))
    	Rst.Fields(7)=trim(request.form("MMobile"))
    Rst.Update
    Set myComm = Server.CreateObject("ADODB.Command")
    myComm.ActiveConnection = Cn
    myComm.CommandText = "SELECT @@IDENTITY FROM Mail;"
    NewID = myComm.Execute
    MailID = NewID(0)
    Rst.Close
    Το πρόβλημα είναι ότι αν τρέξω τον ίδιο κώδικα (με refresh της σελίδας) παραπάνω φορές (δηλαδή, κάνω και μία 2η, 3η κτλ εισαγωγή στο σύστημα) το MailID δεν έχει τιμή!! Μόνο την πρώτη πρώτη φορά παίρνω το ID της νέας εγγραφής και αν κάνω νέα εισαγωγή δεν παίρνω κάποια τιμή για το ID. 

    Υπάρχει κάποιο λάθος στον παραπάνω κώδικα που μου διαφεύγει...;


    Τάσος Καραγιάννης

    Baby debugging steps...
  •  04-02-2011, 19:01 63024 σε απάντηση της 63021

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Δεν νομίζω να σε χαλάσει που είναι VB6, το ADODB είναι ίδιο.

    Δες αυτό, αν θες θα σου ανεβάσω και το project, αλλά θες VS6 Cool

    Dim conn As New ADODB.Connection
    
    Private Sub Form_Load()
        conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ProvingGround;Data Source=INFERNO\SQLEXPRESS"
        conn.CursorLocation = adUseServer
        conn.Open
    End Sub
    
    Private Sub buttonAddNew_Click()
                        
        'Ορισμός recordset, τσιμπάει τον πίνακα
        Dim rs As New ADODB.Recordset
        rs.Open "SELECT * FROM RECORDS", conn, adOpenStatic, adLockOptimistic
    
        'Κάνει addnew
        rs.AddNew
        rs.Fields(1).Value = "Hello world"
        rs.Update
        
        MsgBox (rs.RecordCount)
        
        'Κλείνει το recordset!!!
        rs.Close
        
        'Και μέσω του ίδιου ψευτοαντικειμένου τρέχεις το νέο command
        rs.Open "SELECT @@IDENTITY FROM RECORDS", conn, adOpenStatic, adLockOptimistic
        
        'Voila
        dump = MsgBox(rs.Fields(0).Value)
        
        'Και για να είμαστε τυπικοί...
        rs.Close
        Set rs = Nothing
        
    End Sub
    
    Private Sub Form_Unload(Cancel As Integer)
        conn.Close
        Set conn = Nothing
    End Sub


    Σημείωσε ότι το τρέχω στο ίδιο αντικείμενο. Δεν δοκίμασα να φτιάξω άλλο command, όπως σου είπα πριν Tongue Tied

    ΕΠΙΣΗΣ!!!!

    Δοκίμασα και αυτήν την παραλλαγή για να προσεγγίσω το δικό σου παράδειγμα όπου κάθε φορά φτιάχνεται το connection και δεν υπάρχει στην μνήμη, και δουλεύει επίσης κανονικά.

    Private Sub Form_Load()
    
    End Sub
    
    Private Sub buttonAddNew_Click()
        Dim conn As New ADODB.Connection
        conn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ProvingGround;Data Source=INFERNO\SQLEXPRESS"
        conn.CursorLocation = adUseServer
        conn.Open
        
        Dim rs As New ADODB.Recordset
        rs.Open "SELECT * FROM RECORDS", conn, adOpenStatic, adLockOptimistic
    
        rs.AddNew
        rs.Fields(1).Value = "Hello world"
        rs.Update
        
        MsgBox (rs.RecordCount)
        
        rs.Close
        
        rs.Open "SELECT @@IDENTITY FROM RECORDS", conn, adOpenStatic, adLockOptimistic
        
        dump = MsgBox(rs.Fields(0).Value)
        
        rs.Close
        Set rs = Nothing
        
        conn.Close
        Set conn = Nothing
    End Sub Private Sub Form_Unload(Cancel As Integer)
    End Sub

    Το συμπέρασμα είναι ότι μάλλον πρέπει να κάνεις την τροποποίηση κάπως έτσι:

    Set Rst = Server.CreateObject("ADODB.Recordset")
    Rst.Open "Mail",Cn,2,3
    Rst.AddNew
    	Rst.Fields(1)=trim(request.form("MName"))
    	Rst.Fields(2)=trim(request.form("MAddress"))
    	Rst.Fields(3)=trim(request.form("MCity"))
    	Rst.Fields(4)=trim(request.form("MZipCode"))
    	Rst.Fields(5)=trim(request.form("MCountry"))
    	Rst.Fields(6)=trim(request.form("MTele"))
    	Rst.Fields(7)=trim(request.form("MMobile"))
    Rst.Update
    
    '*************************************************
    '*************************************************
    
    Rst.Close
    Rst.Open "SELECT @@IDENTITY FROM Mail", conn, adOpenStatic, adLockOptimistic
    NewID = Rst.Fields(0).Value
    
    'Και κλεισίματα από δω και κάτω
    Τι να πω, σε μένα δουλεύει κανονικά πάντως... και δεν νομίζω να έχει σημασία το ότι είναι ASP, η βάση είναι το Ado.




    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  06-02-2011, 00:15 63045 σε απάντηση της 63024

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Να πω ότι παρακολουθώ το θέμα από την αρχή - και όπως είπε και ο Σωτήρης, θυμήθηκα παλιές εποχές - και νομίζω ότι έχετε κάνει ένα σφάλμα που δεν το έχετε καταλάβει και για αυτό έχετε φτάσει σε ένα σημείο που προσπαθείτε να κάνετε το εύκολο δύσκολο...

    Το πρόβλημα που έχετε δεν είναι στο Recordset αλλά στο Connection: Ενώ μια χαρά ανοίγει το Recordset με adUseClient/adOpenDynamic/adLockOptimistic έχετε το Connection με CursorLocation σε adUseServer. Αν γυρίσετε το Connection.CursorLocation σε adUseClient δεν χρειάζεται τίποτα παραπάνω...

    Κάπου ξέθαψα ένα VM με WindowsXP SP3, VB6 SP6 και SQL Server 2000 και έκανα την εξής δοκιμή:

    Έφτιαξα ένα πίνακα στον SQL Server 2000:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    CREATE TABLE [dbo].[Users] (
    	[Id] [bigint] IDENTITY (1, 1) NOT NULL ,
    	[UserName] [varchar] (50) COLLATE Greek_CI_AS NOT NULL ,
    	[FirstName] [varchar] (50) COLLATE Greek_CI_AS NULL ,
    	[LastName] [varchar] (50) COLLATE Greek_CI_AS NULL ,
    	[Email] [varchar] (50) COLLATE Greek_CI_AS NOT NULL 
    ) ON [PRIMARY]
    GO
    
    ALTER TABLE [dbo].[Users] WITH NOCHECK ADD 
    	CONSTRAINT [PK_Users] PRIMARY KEY  CLUSTERED 
    	(
    		[Id]
    	)  ON [PRIMARY] 
    GO

    Και έτρεξα τον παρακάτω κώδικα από την VB6 (χρησιμοποίησα ADO v2.8)

    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
     
    Private Sub cmdInsertNumber_Click()
    Dim cn As ADODB.Connection
    Dim rs As ADODB.Recordset
    
        Set cn = New ADODB.Connection
        cn.ConnectionString = "Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=ADODB;Data Source=."
        cn.CursorLocation = adUseClient
        cn.Open
        
        Set rs = New Recordset
        Set rs.ActiveConnection = cn
        rs.CursorLocation = adUseClient
        rs.CursorType = adOpenDynamic
        rs.LockType = adLockOptimistic
        rs.Source = "Users"
        rs.Open
        
        rs.AddNew
        rs.Fields.Item("UserName").Value = "gcapnias"
        rs.Fields.Item("Email").Value = "[email protected]"
        rs.Update
        
        Debug.Print "Id: " & rs.Fields.Item("Id").Value
        
        rs.Close
        cn.Close
        Set cn = Nothing
        
    End Sub

    Αν το Recordset δεν έχει το Id θα χτυπήσει στην γραμμή 23, αλλά δεν το κάνει - σε κάθε εκτέλεση το Id είναι εκεί και εκτυπώνεται...



    George J.


    George J. Capnias: Χειροπρακτικός Υπολογιστών, Ύψιστος Γκουράρχης της Κουμπουτερολογίας
    w: capnias.org, t: @gcapnias, l: gr.linkedin.com/in/gcapnias
    dotNETZone.gr News
  •  07-02-2011, 09:25 63057 σε απάντηση της 63045

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Thanks Γιώργο... απομένει να το δει ο Τάσος μέσα στο σκριπτ, αν και είναι όπως το λές.
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
  •  07-02-2011, 09:28 63058 σε απάντηση της 63057

    Απ: Εφαρμογή με classic asp και MS Access, μετφορά δεδομένων σε Sql Server.

    Παρεπιπτόντως, χτες έκανε και την εμφάνισή του το βιβλίο που είχα στο λύκειο για την GW-Basic... μην τα ρωτάτε!!!
    "When the darkness rises up from inside - that is normal.
    It's when you reach down to pull it up - that the noxious warnings sound."
    Tuzak, Farscape
Σελίδα 1 από 2 (17 εγγραφές)   1 2 >
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems