SQLiteÆô¶¯ÊÂÎï
ÊÂÎñ£¨DbTransaction£©£º
SQLite ȱʡΪÿ¸ö²Ù×÷Æô¶¯Ò»¸öÊÂÎñ£¬ËùÒÔ³ÉÅú²åÈëµÄʱºò£¬Æô¶¯ÊÂÎñ£¬±È²»Æô¶¯ÊÂÎñ¿ìn±¶¡£
ÔÚûÆô¶¯ÊÂÎñ֮ǰÍùSqliteÊý¾Ý¿âÀï²åÈë1000¶àÌõÊý¾ÝµÄÇé¿ö,½á¹ûÿ´Î¶¼ÐèÒªÒ»Á½·ÖÖÓ²ÅÄÜÍê³É.
¶øÔÚÆô¶¯ÊÂÎïÒÔºóËùÐèÒªµÄʱ¼äÖ±½Ó±ä³É²»µ½2Ãë!ÔÀ´sqlite»¨Á½·ÖÖÓÊÇÓÉÓÚExecuteNonQuery·½·¨Ö´ÐÐʱ×Ô¼ºÌá½»Á˸üÐÂÊÂÎñ£¬Ä¬ÈÏÖ´ÐиüвÙ×÷ÊÇ»á×Ô¶¯Ìá½»ÊÂÎñµÄ,Ò²¾ÍÊÇ˵ĬÈÏÇé¿öÏÂÒ»ÌõSQLÓï¾ä¾ÍÊÇÒ»¸öÊÂÎñ,Èç¹û²»Ã÷°×¿ÉÒÔÈ¥¿´ÊÂÎñµÄ¸ôÀ뼶±ð¡£
¸ü¸ÄºóµÄ´úÂë°ÑËùÓеĸüÐÂSQL·ÅÔÚÒ»¸öÊÂÎñÖУ¬Ö»ÓÐÖ´Ðе½Commit·½·¨Ê±²ÅÌá½»ÊÂÎñ¡£
ÓëÊý¾Ý¿âͨÐŵÄÄÚÈÝÁ½´ÎÍê³ÉµÄ£¬µ«¾ÉµÄ·½·¨½øÐÐÁË100000´ÎͨÐÅ£¬
¶øз½·¨Ö»½øÐÐÒ»´ÎͨÐÅ,ʱ¼äµÄ²î±ð¾Í³öÀ´ÁË¡£¡£
public static void InsertManyData(DbConnection conn)
{
using (DbTransaction dbTrans = conn.BeginTransaction())
{
using (DbCommand cmd = conn.CreateCommand())
{
try
{
cmd.CommandText = "INSERT INTO Test(MyValue) VALUES(?)";
DbParameter Field1 = cmd.CreateParameter();
cmd.Parameters.Add(Field1);
for (int n = 0; n < 100000; n++)
{
Field1.Value = n + 100000;
cmd.ExecuteNonQuery();
}
dbTrans.Commit();
}
catch
{
dbTrans.RollBack();
}
}
}
}
Ïà¹ØÎĵµ£º
//²åÈë¼°¸üвÙ×÷
int nRet = 0;
sqlite3 * db = NULL;
CString strFilePath; //Êý¾Ý¿â´æ´¢Â·¾¶
//·¾¶¸³Öµ£¨Ê¡ÂÔ£©
//Á¬½ÓÊý¾Ý¿â
nRet = sqlite3_open16(strFilePath, &db); //Óм¸¸ö´ò¿ªº¯Êý¿É¹©µ÷Óã¬Ê¹ÓÃWCHARÀàÐÍ·¾¶ÓÃÕâ¸ö
if(nRet != SQLIT ......
1¡¢SQLite¼ò½é
¡¡¡¡SQLiteµÚÒ»¸öAlpha°æ±¾µ®ÉúÓÚ2000Äê5ÔÂ. ÖÁ½ñÒѾÓÐ9¸öÄêÍ·ÁË. SQLiteÒ²ÓÀ´ÁËÒ»¸ö°æ±¾ SQLite 3ÒѾ·¢²¼.
¡¡¡¡SQLiteÊÇÒ»¿îÇáÐ͵ÄÊý¾Ý¿â£¬ÊÇ×ñÊØACIDµÄ¹ØÁªÊ½Êý¾Ý¿â¹ÜÀíϵͳ£¬ËüµÄÉè¼ÆÄ¿±êÊÇǶÈëʽµÄ£¬¶øÇÒÄ¿Ç°ÒѾÔںܶàǶÈëʽ²úÆ·ÖÐʹÓÃÁËËü£¬ËüÕ¼ÓÃ×ÊÔ´·Ç³£µÄµÍ£¬ÔÚǶÈëʽÉ豸ÖУ¬¿ÉÄÜÖ»ÐèÒª¼¸°ÙKµ ......
SQLiteÓô¥·¢Æ÷À´Ìæ´úÍâ¼üÔ¼Êø CREATE TABLE [Category] (
[Pkid] INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL,
[CategoryName] NVARCHAR(32) NOT NULL,
[CategoryGuid] char(36) UNIQUE NOT NULL,
[CategoryDesc] nvarchar(256) NULL
) C ......