xarda Δημοσ. 8 Αυγούστου 2011 Μέλος Δημοσ. 8 Αυγούστου 2011 Ναι αυτό θελω να κάνω.Δηλαδή να γραψω κώδικα με τον οποία να εισαγω εγγραφω να διαγραφώ κ.τ.λ στην db μου απο τον embarcadero. Δεν ειναι καλυτερα αν επιλεξω καποιον SQL server και όχι MySql server ? Αν μου υποδειξεις κάποιον SQL Server τοτε πιστευω πως στον embarcadero επιλέγοντας: Microsoft OLE DB Provider for SQL Server θα συνθεθεί αμέσως.
nspyrou Δημοσ. 9 Αυγούστου 2011 Δημοσ. 9 Αυγούστου 2011 Ρε παιδιά!! Γιατί τον έχετε κάνει κοτσίδα τον άνθρωπο?! Φίλε, το Embarcadero RAD Studio 2010 όπως και όλα τα προηγούμενα studios, (CodeGear, Borland, και προ studio) έχει σε όλες τις εκδόσεις του τον "DATA EXPLORER". (Συνήθως θα το βρείς σε καρτέλλα δεξιά της οθόνης σου πάνω από το Tool Palette. Αν δεν το βλέπεις, View->Data Explorer. Με το RAD Studio (είτε για Delphi, είτε για C++ Builder - RADphp κλπ) μπορείς να συνδεθείς μέσω αυτού για να κάνεις browse τα δεδομένα σου. Όλοι οι φίλοι παραπάνω σου προτείνανε (για δικούς τους λόγους ο καθένας) την δική του εκδοχή για sql server (mysql, sql server express κλπ)... Εγώ θα σου έβαζα και την Interbase στο παιχνίδι που είναι native Embarcader/CodeGear/Borland ... Εξαρτάται τι θες να κάνεις. Αν παίξεις με MySQL θα πρέπει να κατεβάσεις και τους drivers για Windows ώστε να μπορέσεις να συνδεθείς με ADO. Άρα να κάνεις σύνδεση μέσω του TADOConnection να χρησιμοποιήσεις το TADOTable ή TADOQuery κλπ ... (από το Tool Section "dbGo"). Το ίδιο ισχύει και τα τον SQL Server Express 2008, μόνο που σε αυτή τη περίπτωση ο driver εγκαθίσταται με το setup του database server. Οι άλλες εναλλακτικές είναι να παίξεις με dbExpress components. Ή αν παίξεις με InterBase, υπάρχουν συγκεκριμένα components με την ίδια ονομασία. Οπότε ο SQL Server που θα εγκαταστήσεις έχει να κάνει καθαρά με το τί θες να κάνεις και πως θες να παίξεις (είτε ειναι MySQL, είτε MS SQL Server Express, είτε InterBase, είτε οτιδήποτε)! Για να συνδεθείς μέσω των components του RAD Studio, χρησιμοποιησε είτε ένα UDL αρχείο και φτιάξε το connection string,, είτε μέσα από το site του ConnectionStrings.com (http://www.connectionstrings.com) ...
xarda Δημοσ. 9 Αυγούστου 2011 Μέλος Δημοσ. 9 Αυγούστου 2011 Ο καθένας εχει την αποψη του με τα πλεονεκτηματα και μειονεκτήματα.Τελικά επιλέγω SQL server που εχω και κατι σημειωσεις και μπορω να δουλέψω καλύτερα αν ξεπεραστει το παρακατω πρόβλημα... Ας ξεκαθαρίσω τι θελω να κάνω: Εφαρμοσγή που θα εχει μια db απο πίσω και μεσω της C++ γλώσσας προγ/μου + sql ερωτήματα να μπορώ να καταχωρώ να αναζητώ να διαγραφω κτλ διαφορες εγγραφές.Η εφαρμογή αυτη προορίζετε για αλλο pc που εχει ή xp ή vista ενω εγω εχω τα win 7. Αρα θελω: 1.Εναν SQL server να τρεχει στo pc μου. 2.Ενα GUI ( ας πουμε οπως το enterprise manager του SQL server 2000 ή το Microsoft SQL Server Management Studio Express του MS SQL server 2005 ) για να φτιαξω τους πίνακες μου και να ορίσω τις συσχετισεις μεταξύ τους. 3.Την σύνδεση της DB με τον Embarcadero μεσω του TADOConnection TADOQuery κ.τ.λ Τι εχω κάνει: 1.Κατέβασα τον sql server 2005 ( Με το SP3 ) + Microsoft SQL Server Management Studio Express και όλα δείχουν να τρεχουν κανονικά. ( κατα την εγκατασταση ΔΕΝ επέλεξα windows authentication ΑΛΛΑ εδωσα Username:sa και password:κενό ) 2.Εβαλα τα καταληλα components για να γινει η συνδεση με την βαση στον embarcadero αλλά ΔΕΝ μπορεί να συνδεθει.... Δείτε το μνμ λάθους στην εικονα. Τί στο καλό συμβαίνει ?
nspyrou Δημοσ. 9 Αυγούστου 2011 Δημοσ. 9 Αυγούστου 2011 Το μήνυμα λάθους που σου έρχεται είναι γιατί δεν έχεις ορίσει τις παραμέτρους στο παράθυρο DataLink Properties.. Αυτό το παράθυρο παραμέτρων υπάρχει για να σου στήσει το Connection String ώστε το TADOConnection να ξέρει πως να συνδεθεί στον SQL Server σου.. στο πεδίο "Select or Enter Server Name", όρισε το όνομα του Instance του SQL Server σου. Συνήθως είναι [<ΟΝΟΜΑ ΜΗΧΑΝΗΜΑΤΟΣ>]\SQLEXPESS,, άν δεν έχεις αλλάξει το όνομα του. πχ: αν το όνομα του τοπικού σου μηχανήματος είναι Mitsos-PC τότε το όνομα του Instance είναι Mitsos-PC\SQLEXPRESS. Κακώς που δεν όρισες password στο instance,, αλλά τελος πάντων,, ας μη το κάνουμε θέμα ... Στο πεδίο πιο κάτω "Select the database on the server" όρισε το όνομα της βάσης δεδομένων που έχεις δημιουργήσει. Αν πχ, έχεις φτιάξει βάση με όνομα MyDatabaseDB στο Mitsos-PC\SQLEXPRESS εκεί βάζεις το όνομα MyDatabaseDB ... Πάτησε το κουμπί "Τest Connection" για να δεις να συνδέεται. Αν όχι, κάτι έχεις βάλει λάθος. Οπότε ξαναδες τις παραμέτρους που έχεις ορίσει. Μετά από 'κεί, όταν πατήσεις ΟΚ θα δείς οτι το property του TADOConnection->ConnectionString θα έχει γεμίσει με την τιμή του ConnectionString για την βάση σου. Το μόνο που έχεις να κάνεις είναι να ανοίξεις το Connection. πχ μπορείς να κάνεις το εξής, αφού έχεις ήδη πάρει την τιμή του ConnectionString: > . . AnsiString MyConnectionString = "[<To connectionString από το DataLink Properties>]"; TADOConnection* CnConnection = new TADOConnection(this); CnConnection->ConnectionString = MyConnectionString; try { CnConnection->Open(); // Για να πάρεις πάρεις ένα dataset πίσω ... TADOQuery* qry = NULL; if( CnConnection->Connected ) { qry = new TADOQuery(this); qry->Connection = CnConnection; qry->SQL->Text = "Select * From SysObjects"; qry->Open(); } } __catch(Exception *Ex) { MessageBox(this->Handle, (AnsiString)"Error connecting to datasource: " + Ex->Message, "ConnectionError", MB_OK | MB_ICONERROR); } . . . Ελπίζω να σε βοήθησα ...
xarda Δημοσ. 10 Αυγούστου 2011 Μέλος Δημοσ. 10 Αυγούστου 2011 Εκανα απεγκατασταση του server Και νεα εγκατασταση δινοντας Και password αλλα συμβαινει το εξης: Στο πεδίο select or enter a server name δινω:onoma-PC/SQLEXPRESS Στο πεδίο enter information to log on to the server επιλέγω το :Use Windows NT on to the server με αποτελεσμα στο πεδίο Select the database on the server να μου εμφανιζει τις βασεις κανονικά και να συνδεεται!!!! Ομως οταν: Στο πεδίο select or enter a server name δινω:onoma-PC/SQLEXPRESS και επιλέγω στο enter information to log on to the server:Use a specific user name and password που μπορώ να δώ το Username που μπορώ να βάλω ( το Pass το ξερω φυσικά )?
nspyrou Δημοσ. 10 Αυγούστου 2011 Δημοσ. 10 Αυγούστου 2011 Εκανα απεγκατασταση του server Και νεα εγκατασταση δινοντας Και password αλλα συμβαινει το εξης: Στο πεδίο select or enter a server name δινω:onoma-PC/SQLEXPRESS Στο πεδίο enter information to log on to the server επιλέγω το :Use Windows NT on to the server με αποτελεσμα στο πεδίο Select the database on the server να μου εμφανιζει τις βασεις κανονικά και να συνδεεται!!!! Ομως οταν: Στο πεδίο select or enter a server name δινω:onoma-PC/SQLEXPRESS και επιλέγω στο enter information to log on to the server:Use a specific user name and password που μπορώ να δώ το Username που μπορώ να βάλω ( το Pass το ξερω φυσικά )? Η εγκατάσταση του sql server, δημιουργεί εξορισμού χρήστη τον sa ... χρησιμοποίησε UserName : sa Password: [<To password που έχεις ορίσει>] ...
xarda Δημοσ. 10 Αυγούστου 2011 Μέλος Δημοσ. 10 Αυγούστου 2011 Ναι πράγματι.Googlara και πετυχα οδηγίες σε ενα ποστ. sa χρειαζεται και το password που ειχα δώσει κατα την εγκατασταση. Τελικά ολα καλα! Τώρα...Πριν ξεκινησω να σχεδιαζω και να γραφω κωδικα να φτιαχνω πίνακες κ.τ.λ πρεπει να βρω πως μπορεί να τρέξει η εφαρμογή ΔΙΧΩΣ προβληματα σε άλλο pc με windows XP ή vista.Για τον builder 6 (με xp)επρεπε απλα να συμπεριλάβεις ορισμένα αρχεία ( αν θυμάμαι καλά ) για να τρεξει.Τώρα τι κάνουμε ?
παπι Δημοσ. 10 Αυγούστου 2011 Δημοσ. 10 Αυγούστου 2011 Ναι πράγματι.Googlara και πετυχα οδηγίες σε ενα ποστ. sa χρειαζεται και το password που ειχα δώσει κατα την εγκατασταση. Τελικά ολα καλα! Τώρα...Πριν ξεκινησω να σχεδιαζω και να γραφω κωδικα , να φτιαχνω πίνακες πρεπει να βρω πως μπορεί να τρέξει η εφαρμογή ΔΙΧΩΣ προβληματα σε άλλο pc με windows XP ή vista.Για τον builder 6 επρεπε απλα να συμπαριλάβεις ορισμένα αρχεία ( αν θυμάμαι καλά ) για να τρεξει.Τώρα τι κάνουμε ? Ποσες εφαρμογες θα εχουν προσβαση σην db;
xarda Δημοσ. 10 Αυγούστου 2011 Μέλος Δημοσ. 10 Αυγούστου 2011 Οταν λες εφαρμογές τι εννοεις? Το προγραμμα αυτο θέλω ΜΟΝΟ να συνδεεται με την db διχως κινδύνους....
nspyrou Δημοσ. 10 Αυγούστου 2011 Δημοσ. 10 Αυγούστου 2011 Ναι πράγματι.Googlara και πετυχα οδηγίες σε ενα ποστ. sa χρειαζεται και το password που ειχα δώσει κατα την εγκατασταση. Τελικά ολα καλα! Τώρα...Πριν ξεκινησω να σχεδιαζω και να γραφω κωδικα να φτιαχνω πίνακες κ.τ.λ πρεπει να βρω πως μπορεί να τρέξει η εφαρμογή ΔΙΧΩΣ προβληματα σε άλλο pc με windows XP ή vista.Για τον builder 6 (με xp)επρεπε απλα να συμπεριλάβεις ορισμένα αρχεία ( αν θυμάμαι καλά ) για να τρεξει.Τώρα τι κάνουμε ? Φίλε xarda, εδώ υπάρχει ένα μικρό τρικ: Εξορισμού οι εφαρμογές της Borland/CodeGear/Embarcadero προκειμένου να κρατήσουν το μέγεθος του εκτελέσιμου αρχείου σου μικρό, κρατάνε έξω από το linking τις περιφερειακές βιβλιοθήκες με αποτέλεσμα στο portability να χρειάζεσαι ένα σκασμό από references και dependencies να πηγαίνουν πέρα δώθε μαζί με την εφαρμογή σου. Υπάρχει όμως και το εξής πολύ απλό: Στις ρυθμίσεις του project σου (είτε είναι Delphi, είτε C++ Builder) πήγαινε, Project->Options και επέλεξε Packages. Κάνε uncheck την επιλογή "Build with runtime packages". Και πάτα ΟΚ. Σώσε το project, κάνε Recompile, και θα δείς το μέγεθος του εκτελέσιμου αρχείου σου να μεγαλώνει κάμποσο!!!! Αυτό γίνεται γιατί διασυνδέει όλες εκείνες τις περιφερειακές βιβλιοθήκες και references μέσα στο εκτελέσιμο αρχείο της εφαρμογής σου. Μπορεί να μεγαλώνει μεν λιγάκι,, που είναι λογικό,, αλλά τουλάχιστον τρέχει παντού, χωρίς προβλήματα. Τώρα αν έχεις κατι που μπορεί να θεωρηθεί 3rd party, πχ drivers για MySQL και τέτοια,, προφανώς θα πρέπει να τα εγκαταστήσεις στο target σύστημα προκειμένου να παίξει ... αυτό υποθέτω οτι εννοείται..
παπι Δημοσ. 10 Αυγούστου 2011 Δημοσ. 10 Αυγούστου 2011 Οταν λες εφαρμογές τι εννοεις? Το προγραμμα αυτο θέλω ΜΟΝΟ να συνδεεται με την db διχως κινδύνους.... Αφου εισαι στην αρχη, δες μια embedded sql να εχεις το κεφαλι σου ησυχο. Εδω μια λιστα απο emb sqls http://en.wikipedia.org/wiki/Embedded_database Δες και αυτο που σου λεει και ο απο πανω για το static linking. Αν δε ξερεις τι πρεπει να κανεις static link κατεβασε το http://www.dependencywalker.com/ και 1) ανοιξε το 2) πετα μεσα το exe που εχεις κανει compile (DnD) 3) βγαλε μια ss και ποσταρε την Να σου πω τη πρεπει να κανεις static linking για να τρεχει σε xp και πανω
xarda Δημοσ. 13 Αυγούστου 2011 Μέλος Δημοσ. 13 Αυγούστου 2011 Οκ παιδες ευχαριστώ μεχρι εδω!!! Ας πάμε στο προγραμματιστικο κομματι. Εχω ενα πίνακα στην DB με ονομα Αυτοκινητα.Ο πίνακας αυτος εχει διαφορα πεδία οπως:Μάρκα-Χρωμα-Αριθ.Κυκοφορίας κτλ... Εχω δημιουγησει μια φόρμα με τοσα Edit ( components ) οσα και τα πεδία του πίνακα. Η φόρμα εξ'ορισμού εχει την δική της κλάση ( TnewCarForm ).Εφτιαξα λοιπον μια κλάση ακομα ( enterNewCar ). Επίσης (περιεκτικοτητα) η πρώτη κλάση TnewCarForm περιεχει ΕΝΑ αντικειμενο ( enterNewCar *obj; ) της κλάσης enterNewCar αλλά και ενα vector<enterNewCar*>vObj για να αποθηκεύονται εκει μέσα ενα ενα και με την σειρα τα διαφορα αντικείμενα-υτοκινητα που θα δίνω στην φόρμα. Η ερωτηση μου ειναι: Τι πρεπει να αλλάξω ωστε να είναι καλύτερος ο κώδικας ? Πως θα πρέπει να αποθηκευτεί ενα αντικείμενο στην DB ? > /* ειναι το newCar.h αρχείο */ //--------------------------------------------------------------------------- #ifndef newCarH #define newCarH //--------------------------------------------------------------------------- #include <Classes.hpp> #include <Controls.hpp> #include <StdCtrls.hpp> #include <Forms.hpp> #include <Buttons.hpp> #include <string> #include <vector> #include "basicPage.h" using namespace std; //--------------------------------------------------------------------------- //mia klash gia eisagogh dedomenon //mia klash ???? gia elegxo ton dedomenon ton edits ??? //mia klash gia eisagogh ton dedomenon sthn db class enterNewCar { private: public: String marka; String kivika; /* εδω θα μπουν κι αλλα πεδία */ enterNewCar(); ~enterNewCar(); }; class TnewCarForm : public TForm { __published: // IDE-managed Components TEdit *markaEdit; TEdit *monteloEdit; TEdit *kivikaEdit; TEdit *tipos_autokinhtouEdit; TEdit *theseisEdit; TEdit *kivotioEdit; TEdit *arith_kikloforiasEdit; TEdit *aerosakoiEdit; TEdit *portesEdit; TEdit *xiliometra_teleutaiou_serviceEdit; TEdit *xiliometraEdit; TEdit *deikths_venzinhsEdit; TEdit *tipos_kausimouEdit; TEdit *tipos_serviceEdit; TLabel *markaLabel; TLabel *monteloLabel; TLabel *kivikaLabel; TLabel *tiposAutokinhtouLabel; TLabel *theseisLabel; TLabel *kivotioLabel; TLabel *arithmosKikloforiasLabel; TLabel *aerosakoiLabel; TLabel *portesLabel; TLabel *xiliometraTeleutaiouServiceLabel; TLabel *tiposServiceLabel; TLabel *tiposKausimouLabel; TLabel *deikthsVenzinhsLabel; TLabel *xiliometraLabel; TLabel *timhEnoikiashsLabel; TEdit *timh_enoikiashsEdit; TBitBtn *apothikeush; TBitBtn *backButton; TMemo *Memo1; void __fastcall backButtonClick(TObject *Sender); void __fastcall FormCreate(TObject *Sender); void __fastcall apothikeushClick(TObject *Sender); private: // User declarations enterNewCar *obj; vector<enterNewCar*>vObj; public: // User declarations bool saveData(enterNewCar *obj); __fastcall TnewCarForm(TComponent* Owner); }; //--------------------------------------------------------------------------- extern PACKAGE TnewCarForm *newCarForm; //--------------------------------------------------------------------------- #endif /* ΚΑΙ ΤΟ .CPP αρχειο!!! */ //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "newCar.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TnewCarForm *newCarForm; //--------------------------------------------------------------------------- __fastcall TnewCarForm::TnewCarForm(TComponent* Owner): TForm(Owner) { } enterNewCar::enterNewCar(){ //edo mesa tha elegxete h sindesh me thn DB } enterNewCar::~enterNewCar(){ //EDO PAEI H DELETE } //--------------------------------------------------------------------------- void __fastcall TnewCarForm::backButtonClick(TObject *Sender) { basicPageForm->Show(); newCarForm->Close(); } //--------------------------------------------------------------------------- void __fastcall TnewCarForm::FormCreate(TObject *Sender) { markaEdit->Text="AUDI"; monteloEdit->Clear(); kivikaEdit->Text="1600"; tipos_autokinhtouEdit->Clear(); theseisEdit->Clear(); kivotioEdit->Clear(); arith_kikloforiasEdit->Clear(); aerosakoiEdit->Clear(); portesEdit->Clear(); xiliometra_teleutaiou_serviceEdit->Clear(); xiliometraEdit->Clear(); deikths_venzinhsEdit->Clear(); tipos_kausimouEdit->Clear(); tipos_serviceEdit->Clear(); } //--------------------------------------------------------------------------- bool TnewCarForm::saveData(enterNewCar *obj){ }; void __fastcall TnewCarForm::apothikeushClick(TObject *Sender) { enterNewCar *obj = new enterNewCar(); obj->marka = this->markaEdit->Text; obj->kivika = this->kivikaEdit->Text; vObj.push_back(obj); saveData(obj); } //---------------------------------------------------------------------------
xarda Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Φίλε xarda, εδώ υπάρχει ένα μικρό τρικ: Εξορισμού οι εφαρμογές της Borland/CodeGear/Embarcadero προκειμένου να κρατήσουν το μέγεθος του εκτελέσιμου αρχείου σου μικρό, κρατάνε έξω από το linking τις περιφερειακές βιβλιοθήκες με αποτέλεσμα στο portability να χρειάζεσαι ένα σκασμό από references και dependencies να πηγαίνουν πέρα δώθε μαζί με την εφαρμογή σου. Υπάρχει όμως και το εξής πολύ απλό: Στις ρυθμίσεις του project σου (είτε είναι Delphi, είτε C++ Builder) πήγαινε, Project->Options και επέλεξε Packages. Κάνε uncheck την επιλογή "Build with runtime packages". Και πάτα ΟΚ. Σώσε το project, κάνε Recompile, και θα δείς το μέγεθος του εκτελέσιμου αρχείου σου να μεγαλώνει κάμποσο!!!! Αυτό γίνεται γιατί διασυνδέει όλες εκείνες τις περιφερειακές βιβλιοθήκες και references μέσα στο εκτελέσιμο αρχείο της εφαρμογής σου. Μπορεί να μεγαλώνει μεν λιγάκι,, που είναι λογικό,, αλλά τουλάχιστον τρέχει παντού, χωρίς προβλήματα. Τώρα αν έχεις κατι που μπορεί να θεωρηθεί 3rd party, πχ drivers για MySQL και τέτοια,, προφανώς θα πρέπει να τα εγκαταστήσεις στο target σύστημα προκειμένου να παίξει ... αυτό υποθέτω οτι εννοείται.. Πραγματι καλο το "τρικ" αλλά και πάλι θέλει κανα δυο .dll Files για να τρεξει...Γιατι δεν τα κανει "include" ας πουμε ολα οσα πρεπει και πρεπει να τα κατεβάσω; Ποια λύση υπάρχει;
Directx Δημοσ. 22 Μαρτίου 2012 Δημοσ. 22 Μαρτίου 2012 Πραγματι καλο το "τρικ" αλλά και πάλι θέλει κανα δυο .dll Files για να τρεξει...Γιατι δεν τα κανει "include" ας πουμε ολα οσα πρεπει και πρεπει να τα κατεβάσω; Ποια λύση υπάρχει; Αν εξαιρέσουμε τυχών βιβλιοθήκες τρίτων που μπορεί να χρησιμοποιεί το πρόγραμμα σου θα πρέπει επίσης (πέραν του "Build with runtime packages") να ορίσεις την τιμή "Dynamic RTL" (ή “Link with Dynamic RTL” -σε νεότερες εκδόσεις του C++ Builde) των options του "C++ Linker" του ενεργού προφίλ (πχ. Release) του Project σου σε "false" (διαφορετικά το πρόγραμμα σου θα χρειάζεται κάποιες ακόμα run-time DLLs για να τρέξει), για περισσότερα δες εδώ.
xarda Δημοσ. 22 Μαρτίου 2012 Μέλος Δημοσ. 22 Μαρτίου 2012 Ενα μεγάάάάάάλο thanks! Τωρα σχετικά με τον installer που θελω να φτιάξω...Xρησιμοποιώ τον Inno setup compiler 5.4.2 και μου ζητάει και σε κάποιο σημείο ζητάει Other application files.Ο φάκελος που έχω με τις εικόνες των bitbtn η άλλες εικόνες θα πρέπει να τον τοποθετήσω και αυτον στον Istaller ας πούμε ή περιέχετε στο .exe αρχείο που δημιουργήθηκε απο τον embarcadero συμφωνα με τις παραπάνω οδηγίες;;;
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα