Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: sqlite

sqlite 6 Χρόνια 6 Μήνες πριν #5130

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Xairetw τους φιλους
Μεσα σε ενα for διαμορφωνω γραμμες που στο PRINT ειναι καπως ετσι:
κωδικος pic x(3),pedio,pedio,klp.Εχω τον κωδικο ασ τον πουμε kwd.θελω να πεσω σε πινακα sqlite που υπαρχει ηδη και να παρω μερικα πεδια απο κει να συμπληρωσω το παραπανω print.Κανω κονεκτ,ανοιγω κερσορα και κολαω στο σελεκτ.Ας πουμε ειναι
select pedio1,pedio2,pedio3,... from fin where id =kwd.Ποια ειναι η συνταξη,γιατι ολο μου χαλαει.Καθε βοηθεια δεκτη.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5131

  • Αποστόλης
  • Το Άβαταρ του/της Αποστόλης
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 148
  • Ληφθείσες Ευχαριστίες 24
Η σύνταξη αυτή είναι. Δεν έχει κάτι περίεργο.
- id και να παίρνει κωδικό αντί για αριθμό είναι λίγο εξεζητημένο. Μάλλον πρέπει να διαλέξεις άλλο πεδίο για να βάλεις στο where clause
- Πρόσεχε πως κάνεις escape το kwd. Εφόσον δεν είναι αριθμός θέλει
id='kwd'
- Κάνε ένα γενικό select - χωρίς where - για να δεις αν δουλεύει.
- Βεβαιώσου οτι όντως συνδέεσαι στη σωστή βάση.
Τελευταία διόρθωση: 6 Χρόνια 6 Μήνες πριν από Αποστόλης.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5132

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Apostole σε χαιρετω
kwd=i[0]
kwd=ας πουμε 101001003
.....
.....
cur.execute('drop table if exists fin;')
cur.execute('create table fin as select id,surname,name from sectoroloi ' )
cur.execute('select * from fin where id=kwd order by surn')

οταν το σελεψκτ ειναι οπως πιο πανω δεν επιστρεφει τιποτα,value kwd den yparxei
το βαζω
cur.execute('select * from fin where id=','kwd')
pali den kanei tipota
to connect einai entajei,ενα σελεκτ γενικο δουλευει κανονικα.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5133

  • Αποστόλης
  • Το Άβαταρ του/της Αποστόλης
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 148
  • Ληφθείσες Ευχαριστίες 24
Από sqlite shell:
select * from fin where id = kwd;

Από script AN το kwd είναι οτιδήποτε εκτός από numeric:
'select * from fin where id = \'kwd\' '
ή
"select * from fin where id='kwd' "
ΑΝ το kwd είναι numeric:
'select * from fin where id = kwd '
ΑΝ το kwd είναι variable:
'select * from fin where id = '.kwd.' '
Πιθανώς να πρέπει να αντικαταστήσεις την τελεία του concatenate με το σύμβολο +
Αναλόγως πως δουλεύει το cur.

Πρόσεχε πως χρησιμοποιείς τα quotes. Είτε μονά είτε διπλά.



Υ.Γ. Επίσης μπορείς να δοκιμάσεις κάτι τέτοιο:
cur.execute('select * from fin where id = :kwd', {'kwd': kwd})

σ.σ. από τη στιγμή που το γενικό query τρέχει κανονικά πρέπει να «ψυλλιάζεσαι» οτι κάτι άλλο συμβαίνει.
Τελευταία διόρθωση: 6 Χρόνια 6 Μήνες πριν από Αποστόλης.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5134

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 409
  • Ληφθείσες Ευχαριστίες 88
nikpol έγραψε:
Apostole σε χαιρετω
kwd=i[0]
kwd=ας πουμε 101001003
.....
.....
cur.execute('drop table if exists fin;')
cur.execute('create table fin as select id,surname,name from sectoroloi ' )
cur.execute('select * from fin where id=kwd order by surn')

οταν το σελεψκτ ειναι οπως πιο πανω δεν επιστρεφει τιποτα,value kwd den yparxei
το βαζω
cur.execute('select * from fin where id=','kwd')
pali den kanei tipota
to connect einai entajei,ενα σελεκτ γενικο δουλευει κανονικα.


cur.execute('select * from fin where id=?', (kvd,))

Περισσότερη βοήθεια εδώ.
Γράφω σε Python 3
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5135

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Κυριοι ευχαριστω.λειτουργησε η λυση του kamar.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5142

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
με παιδευει αυτο το sqlite με το ινσερτ.Συνδεομαι,κανω drop pinaka if exists,ton kanv create if not exist,ανοιγω κερσορα και κανω execute
(sql,(pedio1,pedio2,....) me sql=('insert into pinaka values (ped1,ped2,klp).Οταν τελειωσει κανω select bla bla apo pinaka kai ta blepv grammh grammh .Καπου παρακατω ζηταω με σελεκτ απο τον πινακα πεδια και παιρνω μονο την τελευταια εγγραφη.Εβαλα και ειδα στην οθονη μετα το ινσερτ,τοσα ρεκορντ,οταν τα μετραω με count(*) pairnv 1 mono to teleytaio.Τι δεν κανω καλα ρε παιδια?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5143

  • Αποστόλης
  • Το Άβαταρ του/της Αποστόλης
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 148
  • Ληφθείσες Ευχαριστίες 24
Αν δεν βάλεις κώδικα τι περιμένεις να σου πούμε;
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5144

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
con = lite.connect(self.aimatolog)
cur = con.cursor()
for ....... .......
cur.execute('drop table if exists granules;')
cur.execute('create table if not exists granules (kwd text,epwn text......')
......................
sql= 'insert into granules (kwd , epwn , onom ,....... values (?,?,?,...')
.......
cur.execute(sql, (kwd , epwn , onom ,.....))
cur.execute('commit;')
cur.execute('select * from granules;')

for c in cur.fetchall():
print(c)

εδω βλεπω και μετραω(με add 1 σε μετρητη) ασ πουμε τοσα ρεκορντ
θεωρω οτι εχω τοσα ρεκ στον πινακα

alloy
.........
con = lite.connect(self.aimatolog)
cur = con.cursor()

cur.execute('SELECT name FROM sqlite_master WHERE type="table";')
for a in cur.fetchall():
print(a)

δειχνει τους πινακεσ κανονικα
cur.execute('select telikh_sgot,epanal_sgpt,finalresult from granules;')
for c in cur.fetchall():
print(c)
τυπωνει μονο απο το τελευταιο ρεκορντ που εκανε ινσερτ.
αν κανω και count(*) δινει μονο μια εγγραφη


Ελπιζω να φανει κατι τωρα Αποστολε
Τελευταία διόρθωση: 6 Χρόνια 6 Μήνες πριν από nikpol.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5145

  • Αποστόλης
  • Το Άβαταρ του/της Αποστόλης
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 148
  • Ληφθείσες Ευχαριστίες 24
- Το for δεν ξέρω αν είναι σωστό ή λάθος γιατί δεν γνωρίζω σε τι εφαρμογή το χρησιμοποιείς. Το οτι βάζεις όμως το c σε παρένθεση χωρίς να χρησιμοποιείς array index, δεν μου φαίνεται σωστό.
Για δοκίμασε κάτι τέτοιο:
row = cur.fetchall()
for data in row:
	print data

- Εκεί που λες οτι μετράς με τον μετρητή τρέξε αυτό:
SELECT COUNT(id) FROM granules
Αν θέλεις επιβεβαίωσέ το και με ένα
SELECT MAX(id), MIN(id) FROM granules
Ο μετρητής πιθανός να σου δείχνει λάθος αν δεν έχει μπει σωστά ο κώδικας.
Ακόμα καλύτερα, στην αρχή είναι προτιμότερο να συνδέεσαι από sqlite shell για να βλέπεις από εκεί τις εγγραφές σου, ώσε να καταλαβαίνεις πιο εύκολα αν φταίει το query ή το connection ή τα data κ.λ.π. κ.λ.π.

- Μην δημιουργείς όλα σου τα πεδία ως text.
Θα έχεις προβλήματα γιατί ή sqlite δεν θα μπορεί να διαχειριστεί σωστά τα δεδομένα, θα σου αργεί στo SELECT χωρίς λόγο, θα σου δεσμεύει χώρο που δεν θα χρησιμοποιεί και διάφορα άλλα.
Τελευταία διόρθωση: 6 Χρόνια 6 Μήνες πριν από Αποστόλης.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

sqlite 6 Χρόνια 6 Μήνες πριν #5146

  • nikpol
  • Το Άβαταρ του/της nikpol
  • Αποσυνδεμένος
  • pyt___
  • Δημοσιεύσεις: 42
Αποστολη μην ασχολεισαι αλλο,δεν βρηκα ακρη.Το γυριζω σε xampp kai mysql.σε ευχαριστω που ασχοληθηκες
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.663 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου