Salut,

Je crée une base de donnéees avec les script ci dessous:

Code user_root.py : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
 
DB_USER = "root"
DB_PASSWD = ""
 
DB_HOST = "localhost"
DB_ADMIN = "mysql"
DB_SENSOR = "sensors"
DB_TBL_SENSOR = "sensor"
DB_TBL_DATA = "data"
DB_TBL_VARTYPE = "vartype"
DB_TBL_VARIABLE = "variable"

Code create_tables.py : Sélectionner tout - Visualiser dans une fenêtre à part
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
30
31
32
33
34
35
36
37
38
39
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import canOpen
import MySQLdb 
from user_root import*
 
con = MySQLdb .connect(host=DB_HOST, db=DB_ADMIN, user=DB_USER, passwd=DB_PASSWD)
cursor = con.cursor()
sql = 'CREATE DATABASE %s'%DB_SENSOR
try:
    cursor.execute(sql)
except:
    pass
con = MySQLdb .connect(host=DB_HOST, db=DB_SENSOR, user=DB_USER, passwd=DB_PASSWD)
cur = con.cursor()
cur.execute("CREATE TABLE IF NOT EXISTS %s(recnum INT PRIMARY KEY AUTO_INCREMENT, value_str VARCHAR(15), timestamp INT, variable_recnum INT)"%DB_TBL_DATA)
cur.execute("CREATE TABLE IF NOT EXISTS %s(recnum INT PRIMARY KEY AUTO_INCREMENT, label VARCHAR(31))"%DB_TBL_SENSOR)
cur.execute("CREATE TABLE IF NOT EXISTS %s(recnum INT PRIMARY KEY AUTO_INCREMENT, label VARCHAR(31), canopen_objname VARCHAR(11), vartype_recnum INT, sensor_recnum INT)"%DB_TBL_VARIABLE)
cur.execute("CREATE TABLE IF NOT EXISTS %s(recnum INT PRIMARY KEY AUTO_INCREMENT, label VARCHAR(31), canopen_index INT)"%DB_TBL_VARTYPE)
for record in [("INT8", canOpen.CO_DATA_TYPE_INTEGER8),
                ("INT16", canOpen.CO_DATA_TYPE_INTEGER16),
                ("INT32", canOpen.CO_DATA_TYPE_INTEGER32),
                ("UINT8", canOpen.CO_DATA_TYPE_UNSIGNED8),
                ("UINT16", canOpen.CO_DATA_TYPE_UNSIGNED16),
                ("UINT32", canOpen.CO_DATA_TYPE_UNSIGNED32),
                ("FLOAT32", canOpen.CO_DATA_TYPE_REAL32)]:
    query = "INSERT INTO %s(label, canopen_index) VALUES('%s', %u)"%(DB_TBL_VARTYPE, record[0], record[1])
    print query
    cur.execute(query)
 
query = "SELECT * FROM %s WHERE 1"%(DB_TBL_VARTYPE)
print query
cur.execute(query)
rows = cur.fetchall()
print rows
for row in rows:
    print row
con.close()

Mais quand j'essaie de relire les enregistrements de la table vartype avec le script ci dessus il n'y a rien... Quelqu'un saurait pourquoi? D'ailleurs mySqlAdmin a le même comportement, il ne voit pas les enregistrements...

Code sample_mysql.py : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/usr/bin/python
# -*- coding: utf-8 -*-
 
import canOpen
import MySQLdb 
from user_root import*
 
con = MySQLdb .connect(host=DB_HOST, db=DB_SENSOR, user=DB_USER, passwd=DB_PASSWD)
cur = con.cursor()
query = "SELECT * FROM %s WHERE 1"%(DB_TBL_VARTYPE)
print query
cur.execute(query)
rows = cur.fetchall()
print rows
for row in rows:
    print row

A+

Pfeuh