标签: sqlite

有没有更快的方法从文件读取并插入到SQLite中

下午大家.我对SQLite并不熟悉所以我没有搞乱数据库的所有设置.我比较熟悉SQL Server,Oracle甚至一些Access和mySQL.好吧,目前,我正在获取一个包含110,000多条记录的文件并逐行读取文件,解析数据并对表运行insert语句.该表取决于作为行的第一个字段的记录类型.好吧,我现在正在加载它,并且它已经运行了12分钟(正如我写的那样)并且只导入了14,000条记录.算一算,这意味着它需要1小时到15分钟到1小时30分钟.取决于我的系统其余部分当时的行为方式.因为有不同的记录类型,我无法' 如果有一个SQLite选项(不确定是否有),请执行批量插入.这是作为后台工作者运行的.下面是拉取和解析数据的函数,以及将其插入数据库的函数.请记住,这是一个MVC格式的C#应用​​程序(当我控制它并且没有时间重构它时就像这样):

MainForm.cs后台工作器函数

#region Background Worker Functions

    #region private void InitializeBackgroundWorker()
    /*************************************************************************************
    *************************************************************************************/
    private void InitializeBackgroundWorker()
    {
        backgroundWorker.DoWork +=
            new DoWorkEventHandler(backgroundWorker1_DoWork);
        backgroundWorker.RunWorkerCompleted +=
            new RunWorkerCompletedEventHandler(
        backgroundWorker1_RunWorkerCompleted);
        backgroundWorker.ProgressChanged +=
            new ProgressChangedEventHandler(
        backgroundWorker1_ProgressChanged);
    }
    #endregion

/*****************************************************************************************************************************************************************************************************/

    #region private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    /*************************************************************************************
    *************************************************************************************/
    private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
    {
        // Get the BackgroundWorker that raised this event.
        BackgroundWorker worker = sender as BackgroundWorker;

        // Assign the result of the computation
        // to the Result property of the DoWorkEventArgs …
Run Code Online (Sandbox Code Playgroud)

c# database sqlite insert streamreader

0
推荐指数
1
解决办法
1633
查看次数

用django选配外键?

在我的模型中,我想要一个外键的可选字段.我试过这个:

field = models.ForeignKey(MyModel, null=True, blank=True, default=None)
Run Code Online (Sandbox Code Playgroud)

但我得到这个错误:

model.mymodel_id may not be NULL
Run Code Online (Sandbox Code Playgroud)

我正在使用sqlite编辑:如果它可以帮助,这里是异常位置:

/usr/lib/python2.6/site-packages/django/db/backends/sqlite3/base.py in execute, line 200
Run Code Online (Sandbox Code Playgroud)

所以这是sqlite特定的问题,我想.

sqlite django foreign-keys optional

0
推荐指数
1
解决办法
2516
查看次数

如何在iOS上有效地解析大型xml文件以便在SQLite中存储内容?

我在我的iPhone应用程序中使用libxml2的DOM解析器来解析一个包含十万行的XML文件.

我将检索到的内容存储到SQLite数据库中.但是,这个过程需要几分钟才能完成,太多而不方便用户使用.我的感觉是将数据写入数据库时​​丢失的最大部分时间.

我现在正在寻找有关如何提高此过程效率的任何提示.

xml sqlite iphone parsing

0
推荐指数
1
解决办法
1383
查看次数

Python,将数字转换为字符串'按原样'

使用Python 2.6


我希望能够将00000,000.00004和001等数字转换为字符串.这样每个字符串分别是'00000','000.00004'和'001'.

这样做的方式也必须与所有数字相同,并且当字母被输入时也应对.例如,foo应该变成'foo',2bar应该变成'2bar',但是001应该仍然是'001'.


使用str([object]),上面的数字将分别变为'0','4e-05'和'1'.



有任何想法吗?

编辑:

@unholysampler(以及其他所有人)你当然是对的.

我只是感到困惑,因为Sqlite3正在接受字符串,然后在将它们放入数据库时​​将它们转换为整数或浮点数,尽管它被声明为字符串列.但这完全是另一个问题.

第二次编辑:

如果有人好奇为什么Sqlite3会这样做,那是因为我实际上已经将列设置为模式中的'STRING'类型,它应该是类型'TEXT'(参见http://www.sqlite.org) /datatype3.html) - 这与Sqlite的"动态类型"(参见http://www.sqlite.org/faq.html#q3)相结合,足以让我困惑:-)

谢谢你提供了很好的答案:D

python sqlite

0
推荐指数
1
解决办法
1061
查看次数

如何将日期从DateTimePicker控件转换为mm/dd/yy 12:54:30 PM格式(当前日期时间格式)?

我正在用C#开发移动应用程序.我正在使用SQLite数据库来存储数据.在SQLite数据库中,我存储与客户相关的信息.在那里我用mm/dd/yy 12:54:30 PM格式存储日期.现在我想根据开始日期和结束日期来检索客户数据.我使用以下代码

ShowRegistrationKeyDetails ShowRegKeyDetailsObj = new ShowRegistrationKeyDetails();
// set properties
          ShowRegKeyDetailsObj.FromDate = FromdateTimePicker.Value.ToString();
        ShowRegKeyDetailsObj.ToDate = TodateTimePicker.Value.ToString();
Run Code Online (Sandbox Code Playgroud)

当我根据这些值触发SQL查询时,我得不到正确的结果.我需要将FromdateTimePicker.Text和TodateTimePicker.Text的上述值转换​​为mm/dd/yy 12:54:30 PM格式.我使用以下代码

public SQLiteDataReader getClient_And_RegistrationKeys(int Customer_ID, String FromDt, String ToDt)
    {
        SQLiteDataReader SQLLiteDrObj = null;
        DataManager myDatabase = new DataManager("CompNet.db");
        myDatabase.Init(false);

        string[] Parameter = new string[] { "@Val_Customer_ID", "@Val_FromDt", "@Val_ToDt" };
        Object[] Objval = new Object[] { Customer_ID, FromDt, ToDt };

        string sqlCommandText = "Select Activation_Date, Standard_ID, Client_Key, Registration_Key from Activation_Details where Customer_ID=@Val_Customer_ID And Activation_Date between @Val_FromDt And @Val_ToDt";
        SQLLiteDrObj = myDatabase.ExecuteReader(sqlCommandText, …
Run Code Online (Sandbox Code Playgroud)

c# sqlite compact-framework datetimepicker

0
推荐指数
1
解决办法
1万
查看次数

SQLITE php javascript?自动刷新,无需整页刷新

我有一个简单的PHP代码,可以从SQLite数据库打印数据.基本上$ query ="从B中选择A".一切正常.当sqlite db更新时,我可以刷新页面并显示新数据.

希望我的目标是每5-10秒自动刷新一次这些数据,而无需重新加载整个页面.我也试图避免使用iframe,因为页面上大约有20个显示不同的数据.

最近几天这让我很生气,有没有人知道这样做的方法?我的想法是javascript,jquery还是AJAX?

除此之外,你可以单独使用javascript获取sqlite数据,没有php吗?然后在元素上实现类似下面的内容?没有页面重装?

的setTimeout( "location.reload();",5000);

先感谢您.

javascript php sqlite ajax jquery

0
推荐指数
1
解决办法
1748
查看次数

"("附近的SQLite子查询语法错误

所以我试图在我的数据库上执行此查询:

select 
  count(*) 
from (select 
        userID 
      from users 
      where rating> 1000 
        except (select 
                  userID 
                from users 
                where rating > 1000 
                  except select sellerID from auctions));
Run Code Online (Sandbox Code Playgroud)

我收到此错误:"错误:靠近第1行:靠近"(":语法错误"

任何帮助赞赏

sql sqlite

0
推荐指数
1
解决办法
1239
查看次数

Executemany混乱

好的,所以我有一个函数可以根据插件的输入选择sqlite数据库中的某些行.当只涉及一个语句时,我得到了插件来选择和获取行,但由于我想为此添加一些灵活性,我尝试在遇到列表或元组时使用executemany.然而,尽管我已经摆弄和改变了所有的东西,但仍然无法使其工作,因为sqlite语句将字符串中的每个字符视为绑定,或者因为元组中的绑定太多.这是我到目前为止的代码:

    def readoffset(self,offset):
        vartype = type(name)
        print(vartype)
        if vartype == int:
            self.memcursor.execute('''select all id,matbefore,matafter,name,date 
                                   from main as main where id = ?''',[offset])
            undolist = self.memcursor.fetchall()
            print(undolist)
            return(undolist)
        elif vartype == tuple or list:
            print(vartype)
            self.memcursor.executemany('''select all id,matbefore,matafter,name,date 
                                       from main as main where name = (?)''', [offset])
            undolist = self.memcursor.fetchall()
            return(undolist)
Run Code Online (Sandbox Code Playgroud)

python database sqlite executemany

0
推荐指数
1
解决办法
2775
查看次数

使用SQLite时Android DatePicker"0"的问题

我正在使用android + SQLite和DatePicker Widget.

对于我的SQLite插入命令,DatePicker没有正确格式化.即,如果所选日期的月份或日期小于10,则不会插入0.例如,如果我选择日期"2010年1月1日",则月份和日期的格式为1和1.这与YYYY-MM-DD的常用SQL格式冲突.

我试图通过将它们转换为字符串并通过执行以下操作为o添加前缀来将0变为小于10的整数.

 // the callback received when the user "sets" the date in the dialog
private DatePickerDialog.OnDateSetListener mDateSetListener =
        new DatePickerDialog.OnDateSetListener() {

            public void onDateSet(DatePicker view, int year, 
                                  int monthOfYear, int dayOfMonth) {
                if(monthOfYear < 10)
                {
                    String mm = Integer.toString(monthOfYear);
                    String m = "0" + mm;
                    mMonth = Integer.parseInt(m);
                }
                else{mMonth = monthOfYear;}


                if (dayOfMonth <10)
                {
                    String dd = Integer.toString(dayOfMonth);
                    String d = "0" + dd;
                    dayOfMonth = Integer.parseInt(d);
                }
                else{mDay = dayOfMonth;}

                mYear …
Run Code Online (Sandbox Code Playgroud)

java sqlite android datepicker

0
推荐指数
1
解决办法
2059
查看次数

Blob数据类型?

blob数据类型也可以存储视频数据吗?

sqlite iphone ios

0
推荐指数
1
解决办法
2018
查看次数