API C++ Firebird Requête CREATE TABLE.
J'utilise l'Embedded, j'ai interfacé la DLL ( j'utilise GCC sur windows donc pas de .a pour ma pomme ). J'utilise aussi wxwidget.
La création de la BD fonctionne mais je but à la création d'une table. Avant de la créer je vérifie si la table n'existe pas. Du moins c'est ce que j'espère réussir à faire faire.
L'erreur qu'il me sort : Invalid token -104
cela se produit exactement lors de l'appel de isc_dsql_execute_immediate
D'ailleurs la requête peut être simplement wxT(" CREATE TABLE " ) + aNameDoubleCote, il en ressort la même erreur.
Code:
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
|
bool GR_Firebird::CreateTable( wxString aNameTable, bool Commit )
{
if( m_baseAttache )
{
wxString aNameDoubleCote = wxT('"') + aNameTable + wxT('"') ;
wxString createTable = wxT( "IF NOT EXISTS ( SELECT name FROM sysobjects WHERE type='U' AND name = ") ;
createTable += aNameDoubleCote + wxT(" ) ") ;
createTable += wxT(" CREATE TABLE " ) + aNameDoubleCote ;
bool result = !GR_isc_start_transaction( m_status, &m_trans, 1, &m_db, 0, NULL ) ;
result = result && !GR_isc_dsql_execute_immediate( m_status, &m_db, &m_trans, 0, createTable.c_str(), 1, NULL ) ;
if( result )
{
wxMessageBox( wxT( "Nouvelle table cree : " ) + aNameTable ) ;
if( Commit )
GR_isc_commit_transaction( m_status, &m_trans ) ;
return true ;
}
else
{
wxLogError( wxT("Impossible de creer la table : ") + aNameTable + GetSqlErreur( m_status ) ) ;
}
}
return false ;
} |
Merci de votre attention ;).