Sqlite Spalte vohanden??
Sqlite Spalte vohanden??
Hallo Leute,
muß zum updaten eine neue Spalte in eine DB einfügen.
Wie macht ihr das? Also, wie fragt Ihr vorher ab ob die Spalte icht schon da ist?
Sqlite hat ja keinen show Befehl.
Danke
Matthias
muß zum updaten eine neue Spalte in eine DB einfügen.
Wie macht ihr das? Also, wie fragt Ihr vorher ab ob die Spalte icht schon da ist?
Sqlite hat ja keinen show Befehl.
Danke
Matthias
Hallo,
danke erst mal für die schnelle Antwort.
Ich will SPALTEN einfügen.
Nicht kpl. Tables!! Und DROP... und anschließendes CREATE.. fällt auch flach, da die Tabellen bereits gefüllt sind.
Oder funktiert der IF EXISTS auch für Spalten? (Sorry, aber da habe ich es noch nie gemacht, für ganze Tables kannte ich das schon
)
Danke
danke erst mal für die schnelle Antwort.
Ich will SPALTEN einfügen.
Nicht kpl. Tables!! Und DROP... und anschließendes CREATE.. fällt auch flach, da die Tabellen bereits gefüllt sind.
Oder funktiert der IF EXISTS auch für Spalten? (Sorry, aber da habe ich es noch nie gemacht, für ganze Tables kannte ich das schon
Danke
servus,
nichts einfacher als das:
die <> weg lassen.
nichts einfacher als das:
Code: Alles auswählen
ALTER TABLE <TabellenName> ADD COLUMN <SpaltenName>Schon klar,
aber siehe meinen Beitrag:
aber siehe meinen Beitrag:
Code: Alles auswählen
Also, wie fragt Ihr vorher ab ob die Spalte nicht schon da ist?in sqlite kenne ich keine möglichkeit dies zu machen, wie es beim
ms sql geht, das wüste ich. einfach diese abfrage verwenden müsste
so in etwa funktionieren (nur ms sql)
natürlich musst du auch wissen in welcher tabelle, dazu gibt es die "im ms sql"
die sysobjects tabelle und mit ein paar kniffen und einem richtigem join geht alles
oder du protokollierst selbst mit was du für tabellen erstellst und schreibst
zu der jeweiligen tabelle die spalten mit dazu.
ms sql geht, das wüste ich. einfach diese abfrage verwenden müsste
so in etwa funktionieren (nur ms sql)
Code: Alles auswählen
if not exists(select * from syscolumns where name = 'spaltenname')
begin
print 'existiert nicht :)'
end
gonatürlich musst du auch wissen in welcher tabelle, dazu gibt es die "im ms sql"
die sysobjects tabelle und mit ein paar kniffen und einem richtigem join geht alles
oder du protokollierst selbst mit was du für tabellen erstellst und schreibst
zu der jeweiligen tabelle die spalten mit dazu.
Meine Lsung dazu:
Code: Alles auswählen
QSqlTableModel *model = new QSqlTableModel(0, QSqlDatabase::database( db ) );
QSqlQuery query( QString::null, QSqlDatabase::database( db ) );
model->setTable(table_name);
if(model->fieldIndex(field_name) == -1){
QString row = "ALTER TABLE " + table_name + " ADD " + field_name + " " + field_options;
query.exec(row);
QSqlTableModel *model1 = new QSqlTableModel(0, QSqlDatabase::database( db ) );
model1->setTable(table_name);
if(model1->fieldIndex(field_name) == -1){
return false;
} else {
return true;
}
} else {
return true;
}