Medi = MyRS!iddichiarazione
sqlEL = "DELETE FROM detdic WHERE iddichia = " & Medi 'funziona
MyRSEL = MODMain.MyConnpn.Exec(sqlel)
sqlEL = "DELETE FROM controparti WHERE iddichia = " & Medi 'non funziona
MyRSEL = MODMain.MyConnpn.Exec(sqlel)
Sì, ma sono due tabelle diverse... i campi sono dello stesso tipo? I dati che ti aspetti sono presenti?
IF $hconn.Tables.Exist("detdic") = TRUE THEN
Message.info("la tabella detdic esiste")
ELSE
sql = "CREATE TABLE 'detdic' ( 'iddetdic' INTEGER PRIMARY KEY," &
"'iddichia' numeric(10) DEFAULT 0," &
"'codcli' numeric(10) DEFAULT 0," &
"'tipocli' VARCHAR(15) DEFAULT NULL," &
"'data' numeric(10) DEFAULT 0," &
"'ndoc' VARCHAR(15) DEFAULT NULL," &
"'tipo' VARCHAR(15) DEFAULT NULL," &
"'nome' VARCHAR(15) DEFAULT NULL," &
"'grfino' numeric(10) DEFAULT 0," &
"'euro' numeric(10) DEFAULT 0);"
hres = $hConn.EXEC(sql)
$hConn.Commit
Message.info("tabella detdic creata")
ENDIF
IF $hconn.Tables.Exist("controparti") = TRUE THEN
Message.info("la tabella controparti esiste")
ELSE
sql = "CREATE TABLE 'controparti' ( 'idcontroparti' INTEGER PRIMARY KEY," &
"'iddichia' numeric(10) DEFAULT 0," &
"'codcli' numeric(10) DEFAULT 0," &
"'tipocli' VARCHAR(15) DEFAULT NULL);"
hres = $hConn.EXEC(sql)
$hConn.Commit
Message.info("tabella controparti creata")
ENDIF
DIM Medi AS Integer
Medi = MyRS!iddichiarazione
sqlri = "insert into detdic (iddichia,codcli,tipocli,data,ndoc,tipo,nome,grfino,euro)values( '" &
Medi & "','" & cc & "','" & txc & "','" & Ndat2 & "','" & txd & " ','" &
tip & " ','" & tno & " ','" & tgr & " ','" & tpe & "')"
MyRSRI = MODMain.MyConnpn.Exec(sqlri)
sqlri = "insert into controparti (iddichia,codcli,tipocli)values( '" &
Medi & " ','" & Cfo & " ','" & Nfo & "')"
MyRSRI = MODMain.MyConnpn.Exec(sqlri)
DIM strexe AS String
DIM hbackup AS Process
strexe = "mysqldump -uroot -p"
strexe &= Global.t$Password ' tua password
strexe &= " --opt "
strexe &= Global.t$Name ' nome del database
strexe &= " > " & Application.Path ' percorso
strexe &= "/prova.sql" ' nome file output
hbackup = SHELL (strexe)
DIM strexe AS String
DIM hbackup AS Process
strexe = "mysql < /home/franco/prova.sql -u root -p"
strexe &= Global.t$Password 'tua password
hbackup = SHELL (strexe)
PUBLIC SUB Button1_Click()
nomefile = User.Home & "/gesthotel/backup/" & nomefile & ".sql"
comando = "mysqldump --opt -l -h " & percorso_db & " -u " & utente_mysql & " --password=" & pass_mysql & " " & nome_db & " > " & nomefile
SHELL comando
END
'ricreo il db
sql = "CREATE database " & nome & ";"
hres = $hConn.EXEC(sql)
$hConn.Commit
$hConn.Close
comando = "mysql --one-database " & nomedb & " < " & percorsofile_e_nomefile & " -u " & nome_utenteMysql & " --password=" & password
Timer2.Start
$stringa = ""
SHELL comando
Ma se i 10 pc sono connessi alla rete non puoi usare mysql e fare in modo che ogni modifica aggiorni un solo database centralizzato? In questo modo eviti backup multipli, possibili carenze e roba simile....
WITH $hConn
.Type = "sqlite3" ' indicazione del tipo di database da utilizzare
.Host = sPercorso
.Login = ""
.Password = ""
END WITH
IF NOT $hConn.Databases.Exist(sName & "PN") THEN
$hConn.Databases.Add(sName & "PN")
$hConn.Close
ELSE
Message.info(m1.MyNamA & "Database PrimaNota esistente")
$hConn.Close
ENDIF
$hConn.Name = sName & "PN"
$hConn.Open()
IF $hconn.Tables.Exist("dichiarazione") = TRUE THEN
Message.info("la tabella dichiarazione esiste")
ELSE
sql = "CREATE TABLE 'dichiarazione' ( 'iddichiarazione' INTEGER PRIMARY KEY," &
"'data' numeric(10) DEFAULT 0," &
"'tipo' VARCHAR(15) DEFAULT NULL," &
"'natura' VARCHAR(15) DEFAULT NULL," &
"'mese' numeric(10) DEFAULT 0," &
"'anno' numeric(10) DEFAULT 0," &
"'dataop' numeric(10) DEFAULT 0," &
"'acquisto' VARCHAR(5) DEFAULT NULL," &
"'vendita' VARCHAR(5) DEFAULT NULL," &
"'usoacc' VARCHAR(5) DEFAULT NULL," &
"'usospe' VARCHAR(5) DEFAULT NULL," &
"'garanzia' VARCHAR(5) DEFAULT NULL," &
"'esportazione' VARCHAR(5) DEFAULT NULL," &
"'importazione' VARCHAR(5) DEFAULT NULL," &
"'nofinanziaria' VARCHAR(5) DEFAULT NULL," &
"'spenofin' VARCHAR(255) DEFAULT NULL," &
"'investimento' VARCHAR(5) DEFAULT NULL," &
"'speinv' VARCHAR(255) DEFAULT NULL," &
"'rettifica' VARCHAR(5) DEFAULT NULL," &
"'notret' VARCHAR(255) DEFAULT NULL," &
"'dataret' numeric(10) DEFAULT 0," &
"'noper' numeric(10) DEFAULT 0," &
"'ncont' numeric(10) DEFAULT 0," &
"'groro' numeric(10) DEFAULT 0," &
"'valoro' numeric(10) DEFAULT 0," &
"'valuta' VARCHAR(15) DEFAULT NULL," &
"'note' VARCHAR(255) DEFAULT NULL);"
hres = $hConn.EXEC(sql)
$hConn.Commit
Message.info("tabella dichiarazione creata")
ENDIF
PUBLIC $conn AS NEW Connection
'''XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PUBLIC PROCEDURE Connect()
$conn.Close
$conn.Type = "mysql" '
$conn.Host = "localhost" '
$conn.Login = "root"
$conn.port = "3306"
$conn.Name = "prova"
$conn.Password = "tuapassword" '
$conn.Open
END
PUBLIC PROCEDURE disconnect()
$conn.Close
END
'''XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
PUBLIC SUB controlladb()
DIM nomedatabase AS String
nomedatabase = "prova"
$conn.Close
$conn.Type = "mysql" '
$conn.Host = "localhost" '
$conn.Login = "root"
$conn.port = "3306"
$conn.Password = "tuapassword" '
$conn.Open
IF NOT $conn.Databases.Exist(nomedatabase) THEN
IF Message.Question("Creo il database", "Si", "No") = 1 THEN
$conn.Databases.Add(nomedatabase)
creatabella()
$conn.Close
$conn.Name = nomedatabase
$conn.Open
ENDIF
ELSE
$conn.Close
$conn.Name = nomedatabase
$conn.Open
ENDIF
END
PUBLIC SUB creatabella()
DIM sql AS String
DIM htable AS Result
sql = "CREATE TABLE prova.rubrica ("
sql &= "idrubrica int(10) NOT NULL auto_increment,"
sql &= "cognome varchar(20) DEFAULT NULL,"
sql &= "nome varchar(20) DEFAULT NULL,"
sql &= "indirizzo varchar(30) DEFAULT NULL,"
sql &= "citta varchar(30) DEFAULT NULL,"
sql &= "provincia varchar(20) DEFAULT NULL,"
sql &= "telefono varchar(10) DEFAULT NULL,"
sql &= "PRIMARY KEY(idrubrica)"
sql &= ")ENGINE = InnoDB AUTO_INCREMENT = 0 DEFAULT CHARSET = latin1;"
hTable = $conn.EXEC(sql)
$conn.Commit
$conn.Close
END
sql = "CREATE TABLE " & Global.t$Name & ".clienti ("
sql &= "idcliente int(10) NOT NULL auto_increment,"
sql &= "cognome varchar(20) default NULL,"
sql &= "nome varchar(20) default NULL,"
sql &= "telefono varchar(15) default NULL,"
sql &= "indirizzo varchar(30) default NULL,"
sql &= "citta varchar(30) default NULL,"
sql &= "cap varchar(8) default NULL,"
sql &= "provincia varchar(20) default NULL,"
sql &= "telefono2 varchar(15) default NULL,"
sql &= "fax varchar(15) default NULL,"
sql &= "email varchar(25) default NULL,"
sql &= "txttelefono varchar(15) default NULL,"
sql &= "txttelefono2 varchar(15) default NULL,"
sql &= "note varchar(400) default NULL,"
sql &= "formulacortesia varchar(20) default NULL,"
sql &= "formulasaluto varchar(20) default NULL,"
sql &= "dasede varchar(2) default NULL,"
sql &= "datains date default NULL,"
sql &= "idprcliente int(11) default '0',"
sql &= "numer float DEFAULT NULL,"
sql &= "PRIMARY KEY(idcliente)"
sql &= ")ENGINE = InnoDB AUTO_INCREMENT = 0 DEFAULT CHARSET = latin1;"
hTable = $conn.EXEC(sql)
sql = "CREATE TABLE " & Global.t$Name & ".preventivi ("
sql &= "idpreventivo int(11) NOT NULL auto_increment,"
sql &= "idcliente int(11) NOT NULL,"
sql &= "descrizione varchar(250) default NULL,"
sql &= "datapreventivo date default NULL,"
sql &= "accettazione tinytext,"
sql &= "dataaccettazione date default NULL,"
sql &= "dataconsegna date default NULL,"
sql &= "note varchar(400) default NULL,"
sql &= "sconto int(2) default NULL,"
sql &= "importo decimal(10,2) default NULL,"
sql &= "testoconsegna varchar(200) default NULL,"
sql &= "testopagamento varchar(200) default NULL,"
sql &= "sede int(2) default NULL,"
sql &= "consegnato tinytext,"
sql &= "ordinato tinytext,"
sql &= "venditore varchar(20) default NULL,"
sql &= "pathimage varchar(100) default NULL,"
sql &= "wfornitore varchar(50) default NULL,"
sql &= "widfornitore varchar(50) default NULL,"
sql &= "wlistino varchar(50) default NULL,"
sql &= "widlistino varchar(50) default NULL,"
sql &= "sconto2 int(2) default NULL,"
sql &= "idprcliente int(11) default '0',"
sql &= "idprpreventivo int(11) default '0',"
sql &= "numer float DEFAULT NULL,"
sql &= "PRIMARY KEY(idpreventivo),"
sql &= "KEY clienti_key(idcliente),"
sql &= "CONSTRAINT preventivi_ibfk_1 FOREIGN KEY(idcliente)REFERENCES clienti(idcliente)ON DELETE CASCADE ON UPDATE CASCADE"
sql &= ")ENGINE = InnoDB AUTO_INCREMENT = 0 DEFAULT CHARSET = latin1;"
hTable = $conn.EXEC(sql)
Lo fà in base alle condizioni di trigger, ovvero delle istruzioni di constraint date alla creazione, o dopo, della tabella.Grazie per la risposta ma per me è arabo non so ne cosa sono i trigger ne le istruzioni di costaraint
1. PUBLIC SUB Button1_Click()
2.
3. nomefile = User.Home & "/gesthotel/backup/" & nomefile & ".sql"
4. comando = "mysqldump --opt -l -h " & percorso_db & " -u " & utente_mysql & " --password=" & pass_mysql & " " & nome_db & " > " & nomefile
5.
6.
7. SHELL comando
8.
9.
10. END
PUBLIC SUB Button5_Click()
DIM strexe AS String
DIM hbackup AS Process
strexe = "mysqldump -uroot -p"
strexe &= "dex" ' tua password
strexe &= " --opt "
strexe &= m1.NamDb ' nome del database
strexe &= " > " & "/home/aft/temp/" ' percorso
strexe &= "/prova.sql" ' nome file output
hbackup = SHELL (strexe)
END
PUBLIC SUB Button6_Click()
DIM strexe AS String
DIM hbackup AS Process
strexe = "mysql < /home/aft/temp/prova.sql -u root -p"
strexe &= "dex" 'tua password
hbackup = SHELL (strexe)
END
strexe &= " > " & "/home/aft/temp/" ' percorsoil risultato dovrebbe essere questo .. /home/aft/temp//prova.sql
strexe &= "/prova.sql" ' nome file output
PUBLIC SUB Salvadb_Click()
DIM mypassword AS String = "tuapassword"
DIM mynomedb AS String = "prova"
DIM mypath AS String = User.Home
DIM myfile AS String = "prova.sql"
DIM myuser AS String = "root"
SHELL ("mysqldump -u " & myuser & " -p" & mypassword & " --opt " & mynomedb & " > " & mypath & "/" & myfile)
END
PUBLIC SUB Ripristinadb_Click()
DIM mypath AS String = User.Home
DIM myfile AS String = "prova.sql"
DIM mypassword AS String = "tuapassword"
DIM mynomedb AS String = "prova"
DIM myuser AS String = "root"
DIM $conness AS NEW Connection
$conness.Close
$conness.Type = "mysql" '
$conness.Host = "localhost" '
$conness.Login = myuser
$conness.port = "3306"
$conness.Password = mypassword
$conness.Open
IF $conness.Databases.Exist(mynomedb) THEN
$conness.Databases.Remove(mynomedb)
ENDIF
$conness.Databases.Add(mynomedb)
SHELL ("mysql --one-database " & mynomedb & " < " & mypath & "/" & myfile & " -u " & myuser & " -p" & mypassword)
END
mysqldump -u root -p dex --opt prova > /home/aft/prova.sql
mysql --one-database prova < /home/aft/prova.sql -u root -p dex
Una curiosità. come mai funziona solo con -ppassword?Non sò proprio dirti, sembrava un'errore anche a me, invece funziona solo così :-\
mysqldump --opt -l -h localhost -u root --password=asdf gesthoteldb > /home/sergio/gesthotel/backup/15-09-2010_22-13-47.sql
A me appare l'icona SQL ..se ci fai doppio clic con che programma te lo apre? sicuramente sarà un prog che io non utilizzo :) e quindi non è registrato
mysqldump --help