数据库问题
本人第一次使用数据库,用ADO链接,我想循环往数据库里面写数据,和循环往外都数据,请问如何实现?
[解决办法]
ADOQuery用法- -
在查询和测试过程中,我将遇到的、正确的SQL语句汇总起来,并进行了分类整理,于是便有了这篇文章。之所以发布,主要是希望碰到类似问题的朋友不必再去翻书或者查英文帮助一类的东西,直接拿去用就行了。也算是给大家备个份、提个醒之类的东西吧,希望对大家以后的编程能起到一定的裨益。
一、建立数据库的语句:
ADOQuery->SQL->Add("Create database [database_name]")
二、建立数据表的语句:
1.不换行的方式:
ADOQuery->SQL->Add("Create Table [Table_Name]([Field_1][Type_1](Length_1) Not NULL,[Field_2][Type_2](Length_2),[Field_3][Type_3](Length_3) Not NULL)")
2.换行的方式:
ADOQuery->SQL->Add("Create Table [Table_Name]([Field_1][Type_1](Length_1) Not NULL,"+
"[Field_2][Type_2](Length_2),"+
"[Field_3][Type_3](Length_3) Not NULL)")
3.其中 [table_name] 可以用动态的方式书写:
...["+Dynamic_Table_Name+"]...
或者部分动态
...["Table_Name_Part_1"+Table_Name_Part_2+"]...
三、删除数据表的语句:
1. 删除只有以下唯一语句:
ADOQuery->SQL->Add("drop table [Table_Name]")
四、插入记录
1.一般法
ADOQuery->SQL->Add("Insert into table_name(Field_1,Field_2,...Field_N) Values(Field_1_Value,Field_2_Value,...Field_N_Value) where condition")
2.替换法
AnsiString InsertField,InsertValue;
InsertField=Field_1;
InsertValues=Field_1_value;
if(Edit_1->Text!="")
{
InsertField+=",Label_1->Caption";
InsertValues+="'"+Edit_1->Text+"'";
}
...
...
if(Edit_N->Text!="")
{
InsertField+=",Label_N->Caption";
InsertValues+="'"+Edit_N->Text+"'";
}
下面是SQL语句的写法:
ADOQuery->SQL->Add("Insert into Table_Name("+InsertField+") Values("+InsertValues+") where condition")
五、更新记录
1. 不换行法:
ADOQuery->SQL->Add("Update Table_Name Set Field_1='"+Edit_1->Text+"',Field_2='"+Edit_2->Text+"',...Field_N='"+Edit_N->Text+"' where condition")
2.判断条件换行法
ADOQuery->SQL->Add("Update Table_Name set Field_1='"+Edit_1->Text+"'")
if(Edit_2->Text!="")
{
ADOQuery->SQL->Add(",Field_2='"+Edit_2->Text+"'");
}
...
...
if(Edit_N->Text!="")
{
ADOQuery->SQL->Add(",Field_N='"+Edit_N->Text+"'");
}
ADOQuery->SQL->Add(" where condition")
六、删除记录
1.一般性删除法
ADOQuery->SQL->Add("Delete * from Table_Name where condition")
[解决办法]
如果循環寫數據,且量比較大,建議先插入空記錄,然後添加內容,最後提交,速度相對使用INSERT語句一條條的插入會快點
步驟:
1.使數據庫處于打開狀態;
2.ADO1->Append();
3.ADO1->Fields->Fields[i]->Value = Data_Value;
4.ADO1->Post();
5.關閉數據庫