下午大家.我对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) 在我的模型中,我想要一个外键的可选字段.我试过这个:
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特定的问题,我想.
我在我的iPhone应用程序中使用libxml2的DOM解析器来解析一个包含十万行的XML文件.
我将检索到的内容存储到SQLite数据库中.但是,这个过程需要几分钟才能完成,太多而不方便用户使用.我的感觉是将数据写入数据库时丢失的最大部分时间.
我现在正在寻找有关如何提高此过程效率的任何提示.
使用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
我正在用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) 我有一个简单的PHP代码,可以从SQLite数据库打印数据.基本上$ query ="从B中选择A".一切正常.当sqlite db更新时,我可以刷新页面并显示新数据.
希望我的目标是每5-10秒自动刷新一次这些数据,而无需重新加载整个页面.我也试图避免使用iframe,因为页面上大约有20个显示不同的数据.
最近几天这让我很生气,有没有人知道这样做的方法?我的想法是javascript,jquery还是AJAX?
除此之外,你可以单独使用javascript获取sqlite数据,没有php吗?然后在元素上实现类似下面的内容?没有页面重装?
的setTimeout( "location.reload();",5000);先感谢您.
所以我试图在我的数据库上执行此查询:
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行:靠近"(":语法错误"
任何帮助赞赏
好的,所以我有一个函数可以根据插件的输入选择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) 我正在使用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) sqlite ×10
c# ×2
database ×2
iphone ×2
python ×2
ajax ×1
android ×1
datepicker ×1
django ×1
executemany ×1
foreign-keys ×1
insert ×1
ios ×1
java ×1
javascript ×1
jquery ×1
optional ×1
parsing ×1
php ×1
sql ×1
streamreader ×1
xml ×1