Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 06 Δεκ 2009 21:30

Καλησπέρα σε όλα τα μέλη του φορουμ...
Χρειάζομαι την βοήθεια για το ζήτημα της ημερομηνίας στον Builder !
Για να μπω κατευθείαν στο θέμα ...
Χειρίζομαι τον C++ Builder 2007, χρησιμοποιώ ADO connection και στέλνω τα δεδομένα μου σε ένα αρχείο της Access 2007 .
Για να το επιτύχω αυτό χρησιμοποιώ ADOQuery και την εντολή της SQL -> ("Insert into")
Πιο συγκεκριμένα ...
ADOQuery1->SQL->Text="INSERT INTO TABLE1 (ONOMA, EPWNYMO, HM_GENNISIS )
VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"', '"+Edit3->Text+"')";
Το παραπάνω παράδειγμα δεν δουλεύει ...
Προσπάθησα να χρησιμοποιήσω την DateValue κάπως έτσι ...
ADOQuery1->SQL->Text="INSERT INTO TABLE1 (ONOMA, EPWNYMO, HM_GENNISIS )
VALUES ('"+Edit1->Text+"', '"+Edit2->Text+"', DateValue('"+Edit3->Text+"'))";
Αλλά αν αφήσει ο χρήστης του προγράμματος κενό το κελί Edit3 , παρουσιάζει σφάλμα γιατί δεν δέχετε μηδενικές τιμές.
Επίσης ψέχνω πληροφορίες για ένα ερώτημα σύγκρισεις ημερομηνιών πάλι με ado...
p.x. να μπορεί ο χρήστης να δεί σε τρείς μήνες απο τωρα ποσοι και ποιοι εχουν γενέθλια ...
Αν γνωρίζει κάποιος ... Ευχαριστώ εκ των προτέρων !


Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από dva_dev » 06 Δεκ 2009 22:47

Χρησιμοποίησε παραμέτρους και όχι καρφωτό sql statement.

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 06 Δεκ 2009 23:02

Αν μπορείς δώσε μου ένα παράδειγμα για να καταλάβω τι εννοείς ...
Ότι υπάρχει στο διαδίκτυο για αυτό το θέμα είναι στα κινέζικα, και δεν καταλαβαίνω τι κάνουν !

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από virxen75 » 07 Δεκ 2009 00:57

Αλλά αν αφήσει ο χρήστης του προγράμματος κενό το κελί Edit3 , παρουσιάζει σφάλμα γιατί δεν δέχετε μηδενικές τιμές.

με if δες αν έχει τιμή και όχι κενό ή 0
και αν έχει τιμή τότε --->sql
αλλιώς μήνυμα λάθους "βάλε δεδομένα" --->όχι sql

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 07 Δεκ 2009 02:57

Οκ , θα το δοκιμάσω και θα σας πω...

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 07 Δεκ 2009 21:00

Δεν λειτουργεί για δύο λόγους ,
Ο ένας είναι γιατί μέσα σε μία φόρμα έχω 6 ημερομηνίες , για σκέψου πόσες if πρέπει να κάνω για να καλύψω τον συνδιασμό τους.
Και έπειτα αν ο χρήστης πάει και δώσει καταλάθος στο πεδίο την τιμή "03/0Ρ/Ο9" θα ξαναχτυπίσει σφάλμα, έχει να προτείνει κανείς κάποιο άλλο τρόπο ?

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 08 Δεκ 2009 07:31

Κάπου βρήκα ότι αν βάλω μέσα σε διέσεις το editbox δηλαδή κάπως έτσι #'"+Edit1->text+"'#
θα λειτουργήσει , αλλά τίποτα ...

Άβαταρ μέλους
virxen75
Δημοσιεύσεις: 493
Εγγραφή: 18 Φεβ 2009 00:17
Τοποθεσία: ΗΡΑΚΛΕΙΟ ΚΡΗΤΗΣ

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από virxen75 » 08 Δεκ 2009 10:20

φτιάξε μία συνάρτηση τύπου

boolean checkDate(String){
....
}

που θα ελέγχει την τιμή κάθε edit box και μετά αν όλες αληθής τότε --->sql

να και ένα παράδειγμα να το προσαρμόσεις

Κώδικας: Επιλογή όλων


bool checkdate(int m, int d, int y)
{
//gregorian dates started in 1582
if &#40;! &#40;1582<= y &#41; &#41;//comment these 2 lines out if it bothers you
return false;
if &#40;! &#40;1<= m && m<=12&#41; &#41;
return false;
if &#40;! &#40;1<= d && d<=31&#41; &#41;
return false;
if &#40; &#40;d==31&#41; && &#40;m==2 || m==4 || m==6 || m==9 || m==11&#41; &#41;
return false;
if &#40; &#40;d==30&#41; && &#40;m==2&#41; &#41;
return false;
if &#40; &#40;m==2&#41; && &#40;d==29&#41; && &#40;y%4!=0&#41; &#41;
return false;
if &#40; &#40;m==2&#41; && &#40;d==29&#41; && &#40;y%400==0&#41; &#41;
return true;
if &#40; &#40;m==2&#41; && &#40;d==29&#41; && &#40;y%100==0&#41; &#41;
return false;
if &#40; &#40;m==2&#41; && &#40;d==29&#41; && &#40;y%4==0&#41; &#41;
return true;
 
return true;
&#125;

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από dva_dev » 08 Δεκ 2009 11:22

Δες και το http://www.yevol.com/en/bcb/Lesson33.htm, θα σε βοηθήσει με τις ημερομηνίες.

MamRa
Δημοσιεύσεις: 29
Εγγραφή: 06 Δεκ 2009 21:07

Πρόβλημα εισαγωγής ημερομηνίας (Access,ADO,Borland c++ 2007)

Δημοσίευση από MamRa » 08 Δεκ 2009 17:46

Φίλοι μου virxen75 και dva_dev ευχαριστώ για την πολύτιμη βοήθεια και τον χρόνο σας ! Οσο αφορά τον σύνδεσμο που μου έστειλες dva_dev, θα μου φανεί πολύ χρήσιμος και για να κλειδώσω το πρόγραμμα με βάση την ημερομηνία του συστήματος ...
Ευχαριστώ πολύ, αν προκύψει κάποιο πρόβλημα, θα ενημερώσω !

Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες