首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

将Access表里的数据追加到SQL表里,怎么SQL表自增列有关问题

2012-03-02 
将Access表里的数据追加到SQL表里,如何SQL表自增列问题C/C++ codesql_1 SELECT * FROM Access表 //

将Access表里的数据追加到SQL表里,如何SQL表自增列问题

C/C++ code
    sql_1 = "SELECT * FROM Access表;"; // Access表里没有自增列    OpenQuery(adoquery_2, sql_1); // 封装的执行并Open ADOQuery的函数    sql_1 = "alter table [mc_dosage_1] drop column ID ; alter table [mc_dosage_1] add ID int identity(1,1)" ;    // 本想先删除自增字段再加入,但是由于ID为主键不能执行    SQLEXEC(adoquery_1, sql_1);// 这里是封装的执行SQL语句的函数    int DBSetCount = 0;    while(!adoquery_2->Eof)    {        sql_1 = "SELECT * FROM SQL表 WHERE [drugId] = " + adoquery_2->FieldList->FieldByName("drugId")->AsString;        // SELECT * 找不到SQL表中的自增列“ID”        DBSetCount = OpenQuery(adoquery_1, sql_1);        if(DBSetCount > 0)            adoquery_1->Edit();            // SQL表中存在与Access表中[drugId]相同的记录,修改记录            else            adoquery_1->Append();            // 否则,追加记录        for(int i=0; i<adoquery_2->FieldCount; i++)        {            AnsiString iFieldName = adoquery_2->FieldList->Fields[i]->FieldName;            // 这里adoquery_2->FieldList->Fields[0]->FieldName=“drugId”而非“ID”,Why?            if(adoquery_1->FindField(iFieldName) != NULL)                adoquery_1->FieldByName(iFieldName)->Value = adoquery_2->FieldByName(iFieldName)->Value;        }        adoquery_1->Post();                adoquery_2->Next();    }   

我是用以上语句来将Access表里的数据追加到SQL表中的,但是由于两个标的结构有细微的差异,所以先判断在SQL表中是否存在相应的字段,存在则将该字段的值改写为Acces表对应字段值,不存在则跳过该字段继续寻找下一字段,如此反复,直到Access表中的字段都比较完毕,更新该条记录,就是自增列搞不定啊,谢谢了。。。

[解决办法]
我给你喉以嗓子,呵呵
[解决办法]
喊叫几声

热点排行