搜索
查看: 764|回复: 3

sqlite组装语句遇到的问题

[复制链接]

3

主题

6

帖子

46

积分

新手入门

Rank: 1

积分
46
发表于 2018-6-22 10:29:40 | 显示全部楼层 |阅读模式
上代码
  1. import win.ui;
  2. import console;
  3. /*DSG{{*/
  4. mainForm = win.form(text="aardio form";right=326;bottom=350)
  5. mainForm.add(
  6. ID={cls="edit";text="edit";left=18;top=40;right=87;bottom=62;edge=1;z=2};
  7. button={cls="button";text="提交";left=251;top=10;right=314;bottom=41;z=13};
  8. 分类10={cls="edit";text="edit";left=151;top=301;right=220;bottom=323;edge=1;z=12};
  9. 分类6={cls="edit";text="edit";left=150;top=170;right=219;bottom=192;edge=1;z=8};
  10. 分类7={cls="edit";text="edit";left=150;top=203;right=219;bottom=225;edge=1;z=9};
  11. 分类8={cls="edit";text="edit";left=150;top=236;right=219;bottom=258;edge=1;z=10};
  12. 分类9={cls="edit";text="edit";left=152;top=270;right=221;bottom=292;edge=1;z=11};
  13. 工程1={cls="edit";text="edit";left=149;top=6;right=218;bottom=28;edge=1;z=3};
  14. 工程2={cls="edit";text="edit";left=150;top=39;right=219;bottom=61;edge=1;z=4};
  15. 工程3={cls="edit";text="edit";left=150;top=72;right=219;bottom=94;edge=1;z=5};
  16. 工程4={cls="edit";text="edit";left=150;top=107;right=219;bottom=126;edge=1;z=6};
  17. 工程5={cls="edit";text="edit";left=150;top=137;right=219;bottom=159;edge=1;z=7};
  18. 序号={cls="edit";text="edit";left=18;top=7;right=87;bottom=29;edge=1;z=1}
  19. )
  20. /*}}*/

  21. import sqlite;
  22. var sqlConnection = sqlite("/test.db");
  23. sqlConnection.exec("create table if not exists mytest (
  24.                         序号,
  25.                         ID,
  26.                         工程1,
  27.                         工程2,
  28.                         工程3,
  29.                         工程4,
  30.                         工程5,
  31.                         分类6,
  32.                         分类7,
  33.                         分类8,
  34.                         分类9,
  35.                         分类10,
  36.                         primary key (序号,ID)
  37.                         );"
  38. )


  39. mainForm.getInsertSQL = function(){
  40.         var t = {};
  41.         for(name,ctrl in mainForm.eachControl("edit") ){
  42.                 t[name] = ctrl.text;
  43.         }
  44.         var columns,values;
  45.         for k, v in t {
  46.                 columns = string.concat(columns,k,",");
  47.                 values  = string.concat(values,v,",");
  48.                
  49.         }
  50.         columns = string.trim(columns,",");
  51.         values = string.trim(values,",");
  52.         return columns,values;
  53. }


  54. mainForm.button.oncommand = function(id,event){
  55.         var  columns,values = mainForm.getInsertSQL();
  56.         console.log(columns,values)
  57.         sqlConnection.exec("insert into mytest ("++columns++") values ("++values++")")
  58. }

  59. mainForm.enableDpiScaling();
  60. mainForm.show();

  61. return win.loopMessage();
复制代码


哎 不知道错在哪里了,我这个方法是不是太笨了,我这水平怕这辈子也学不会编程了。。。。
回复

使用道具 举报

3

主题

6

帖子

46

积分

新手入门

Rank: 1

积分
46
 楼主| 发表于 2018-6-22 14:05:41 | 显示全部楼层
组成的values字符串逗号分隔,需要每一个添加单引号。
回复

使用道具 举报

185

主题

2541

帖子

1万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
13973
发表于 2018-6-22 20:54:58 | 显示全部楼层
import win.ui;
/*DSG{{*/
mainForm = win.form(text=
"SQL连贯操作";right=367;bottom=391)
mainForm.add(
edit={cls=
"edit";text="edit";left=19;top=46;right=344;bottom=370;edge=1;hscroll=1;multiline=1;vscroll=1;z=3};
userId={cls=
"edit";text="edit";left=98;top=8;right=167;bottom=30;edge=1;z=2};
userName={cls=
"edit";text="edit";left=18;top=7;right=87;bottom=29;edge=1;z=1}
)
/*}}*/

import sqlite;
var sqlConnection = sqlite("/testModel.db");

//SQL连贯操作,这种写法有时候会把简单的事搞复杂,一般推荐大家还是直接写SQL省事
import sqlite.model;
var model = sqlite.model(sqlConnection);

//绑定字段名
model.table("user2").fields("userId", "userName")

//创建表
model.create().exec()

//把窗体上同名控件的值插入数据库
model.insert(mainForm).exec();

import web.json;
mainForm.edit.print( model.fields(
"rowid","*").getTable() )

mainForm.show();
win.loopMessage();

回复

使用道具 举报

3

主题

6

帖子

46

积分

新手入门

Rank: 1

积分
46
 楼主| 发表于 2018-6-23 00:55:31 来自手机 | 显示全部楼层
感谢老师,看了一晚上的sqlite.model自定义库,结合现实遇到的问题,带着问题去看源码,才知道一个库的诞生要考虑好多,也知道了核心库string table的重要性,和通用性,我会继续努力的,老师费心了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

手机版|未经许可严禁引用或转载本站文章|站长邮箱|aardio.com|aardio官方社区 ( 皖ICP备09012014号 )

GMT+8, 2018-10-19 14:27 , Processed in 0.062500 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表