在MATLAB中具有可变参数数量的SQLite语句

皮特

我正在MATLAB中编写GUI并使用mksqlite我在将参数传递给它时遇到问题。

该命令在以下mksqlite([ 'INSERT INTO ' , z , ' VALUES (?)' ], data);位置:

  • z = 'table name''table name'从列表框中选择。
  • data插入来自inputdlg

问题在于?参数,因为不同的表具有不同的列数。有人知道?动态声明的方法吗?

a = get(handles.listbox1,'String');
b = get(handles.listbox1,'Value');
tabela=a{b};
disp(tabela);
mksqlite( 'param_wrapping', 1 );
mksqlite( 'result_type', 1 );
[results,colnames] = mksqlite(['SELECT * FROM  ',  tabela])
disp(results);
e=fieldnames(results);
v=size(e);
for r=1:v
  prompt={'Wprowadź '};
dlg_title = 'Wprowadź ';
num_lines = 1;
answer = inputdlg(prompt,dlg_title,num_lines); 
imie=answer{1};
disp(imie);
t=answer{1};
data{r}=t;
disp(data);
z=a{b};
end;

mksqlite([ 'INSERT INTO ' , z , ' VALUES (?,?,?,?)' ], data); %// << this should be dynamic
魔鬼

想法是您应该VALUES(...)动态创建您的表或为每个表案例获取预定义的语句。

您可以尝试使用String-to- Stringmap,其中键是表名,而值是VALUES语句。可以使用containers.Map对象在MATLAB中实现这是我的意思的示例:

假设您的表名是table_names = {'table1','table2','table3'};,并且假设这些表分别具有2、3和4个字段。VALUES因此,SQL命令的相应部分为:sql_values = {'VALUES (?,?)','VALUES (?,?,?)','VALUES (?,?,?,?)'};

现在,我们Map从这些String组合中构建出一个

values_map = containers.Map(table_names,sql_values);

构建完之后,Map您可以使用从列表框中获得的表名(a在您的代码中)并检索正确的VALUES语句:

vals_str = values_map(a);

或者,您可以使用逻辑确定?,在括号后放入括号的正确数量VALUES

switch a
  case 'table1'
    nVals = 2;
  case 'table2'
    nVals = 3;
  case 'table3'
    nVals = 4;
end

vals_str = ['VALUES (' repmat('?,',[1 nVals-1]) '?)'];

注意:您可以根据情况保留其他vals_str权利,而无需Strings在运行时进行构建我个人不太喜欢这样的版本,原因是我无法解释。


最后,您可以vals_str在中使用mksqlite

mksqlite(['INSERT INTO ' z ' ' vals_str], data);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

具有可变参数数量的OCaml函数

来自分类Dev

具有可变参数数量的Prolog谓词

来自分类Dev

在NetLogo中运行具有可变数量的参数的任务

来自分类Dev

具有动态参数/参数数量的匿名函数

来自分类Dev

SQL 中 case 语句中的参数数量无效

来自分类Dev

Kotlin中具有不同类型参数数量的两个函数

来自分类Dev

Kotlin中具有不同类型参数数量的两个函数

来自分类Dev

参数数量可变的匿名方法

来自分类Dev

可变参数模板与类中的函数参数数量相同

来自分类Dev

编译时检查可变参数模板中的参数数量

来自分类Dev

如何创建具有可变数量的参数的函数?

来自分类Dev

具有可变数量参数的Prolog谓词

来自分类Dev

具有可变数量参数的Scala类构造函数

来自分类Dev

Python咖喱函数具有可变数量的参数

来自分类Dev

具有可变数量参数的函数的指针

来自分类Dev

具有可变数量参数的 Concat CString

来自分类Dev

.NET String.Format 带有可变字符串和参数数量

来自分类Dev

存储可变参数模板的模板参数数量

来自分类Dev

方法参数数量可变,每种参数类型不同

来自分类Dev

MS SQL-具有动态参数数量的参数化查询

来自分类Dev

编写Bash脚本以根据命令中的参数数量下载可变数量的.gitignore文件吗?

来自分类Dev

可变参数宏包装程序,可扩展为格式字符串,并带有与参数数量相对应的字符

来自分类Dev

使用Quickcheck测试类型类,参数数量可变

来自分类Dev

可变模板递归,参数数量不正确

来自分类Dev

在NetLogo中运行带有可变数量的参数的任务

来自分类Dev

C中可变参数的数量是否有限制?

来自分类Dev

具有在编译时确定的参数数量的Lambda函数

来自分类Dev

PL / SQL过程可以具有的最大参数数量是多少?

来自分类Dev

R中的if语句具有多个参数

Related 相关文章

  1. 1

    具有可变参数数量的OCaml函数

  2. 2

    具有可变参数数量的Prolog谓词

  3. 3

    在NetLogo中运行具有可变数量的参数的任务

  4. 4

    具有动态参数/参数数量的匿名函数

  5. 5

    SQL 中 case 语句中的参数数量无效

  6. 6

    Kotlin中具有不同类型参数数量的两个函数

  7. 7

    Kotlin中具有不同类型参数数量的两个函数

  8. 8

    参数数量可变的匿名方法

  9. 9

    可变参数模板与类中的函数参数数量相同

  10. 10

    编译时检查可变参数模板中的参数数量

  11. 11

    如何创建具有可变数量的参数的函数?

  12. 12

    具有可变数量参数的Prolog谓词

  13. 13

    具有可变数量参数的Scala类构造函数

  14. 14

    Python咖喱函数具有可变数量的参数

  15. 15

    具有可变数量参数的函数的指针

  16. 16

    具有可变数量参数的 Concat CString

  17. 17

    .NET String.Format 带有可变字符串和参数数量

  18. 18

    存储可变参数模板的模板参数数量

  19. 19

    方法参数数量可变,每种参数类型不同

  20. 20

    MS SQL-具有动态参数数量的参数化查询

  21. 21

    编写Bash脚本以根据命令中的参数数量下载可变数量的.gitignore文件吗?

  22. 22

    可变参数宏包装程序,可扩展为格式字符串,并带有与参数数量相对应的字符

  23. 23

    使用Quickcheck测试类型类,参数数量可变

  24. 24

    可变模板递归,参数数量不正确

  25. 25

    在NetLogo中运行带有可变数量的参数的任务

  26. 26

    C中可变参数的数量是否有限制?

  27. 27

    具有在编译时确定的参数数量的Lambda函数

  28. 28

    PL / SQL过程可以具有的最大参数数量是多少?

  29. 29

    R中的if语句具有多个参数

热门标签

归档