コード例 #1
0
ファイル: alter.c プロジェクト: elmarco/msitools
static unsigned alter_add_column(LibmsiAlterView *av)
{
    unsigned r, colnum = 1;
    LibmsiQuery *view;
    LibmsiView *columns;

    static const char szColumns[] = "_Columns";
    static const char query[] =
        "SELECT * FROM `_Columns` WHERE `Table`='%s' ORDER BY `Number`";

    r = table_view_create(av->db, szColumns, &columns);
    if (r != LIBMSI_RESULT_SUCCESS)
        return r;

    if (check_column_exists(av->db, av->colinfo->table, av->colinfo->column))
    {
        columns->ops->delete(columns);
        return LIBMSI_RESULT_BAD_QUERY_SYNTAX;
    }
コード例 #2
0
ファイル: alter.c プロジェクト: AlexSteel/wine
static UINT alter_add_column(MSIALTERVIEW *av)
{
    UINT r, colnum = 1;
    MSIQUERY *view;
    MSIVIEW *columns;

    static const WCHAR szColumns[] = {'_','C','o','l','u','m','n','s',0};
    static const WCHAR query[] = {
        'S','E','L','E','C','T',' ','*',' ','F','R','O','M',' ',
        '`','_','C','o','l','u','m','n','s','`',' ','W','H','E','R','E',' ',
        '`','T','a','b','l','e','`','=','\'','%','s','\'',' ','O','R','D','E','R',' ',
        'B','Y',' ','`','N','u','m','b','e','r','`',0
    };

    r = TABLE_CreateView(av->db, szColumns, &columns);
    if (r != ERROR_SUCCESS)
        return r;

    if (check_column_exists(av->db, av->colinfo->table, av->colinfo->column))
    {
        columns->ops->delete(columns);
        return ERROR_BAD_QUERY_SYNTAX;
    }