sql - 处理许多 SQL 参数
问题描述
我的表格中实际上有两种寄存器
- 客户
- 萨卡多
两者使用几乎相同的字段,“Cliente”寄存器有更多的字段选项。
我为 SQL 命令做了这个字符串生成器,它工作正常,但速度不快。
Private Sub SQLString()
Dim LabelsItens = ArrayLabelsItens()
Dim String_Labels = "", String_Itens As String = ""
Dim n As Integer
For n = 0 To LabelsItens.GetLength(0) - 1
If n = LabelsItens.GetLength(0) - 1 Then
String_Itens &= LabelsItens(n, 0)
String_Labels &= $"'{LabelsItens(n, 2)}'"
Else
String_Itens &= LabelsItens(n, 0) & ","
String_Labels &= $"'{LabelsItens(n, 2)}',"
End If
Next
End Sub
Public Function ArrayLabelsItens() As Array
If Cliente = True Then
Return {{"Nome", TB_Nome, TB_Nome.Text, TypeName(TB_Nome)},
{"Documento", TB_Doc, TB_Doc.Text, TypeName(TB_Doc)},
{"Endereco", TB_Endereco, TB_Endereco.Text, TypeName(TB_Endereco)},
{"Numero", TB_Numero, TB_Numero.Text, TypeName(TB_Numero)},
{"Bairro", TB_Bairro, TB_Bairro.Text, TypeName(TB_Bairro)},
{"CEP", TB_CEP, TB_CEP.Text, TypeName(TB_CEP)},
{"Cidade", TB_Cidade, TB_Cidade.Text, TypeName(TB_Cidade)},
{"Estado", TB_Estado, TB_Estado.Text, TypeName(TB_Estado)},
{"Observacoes", TB_Observacoes, TB_Observacoes.Text, TypeName(TB_Observacoes)},
{"Tel1", TB_Telefone_1, TB_Telefone_1.Text, TypeName(TB_Telefone_1)},
{"Tel2", TB_Telefone_2, TB_Telefone_2.Text, TypeName(TB_Telefone_2)},
{"Tel3", TB_Telefone_3, TB_Telefone_3.Text, TypeName(TB_Telefone_3)},
{"Tel4", TB_Telefone_4, TB_Telefone_4.Text, TypeName(TB_Telefone_4)},
{"Email1", TB_Email_1, TB_Email_1.Text, TypeName(TB_Email_1)},
{"Email2", TB_Email_2, TB_Email_2.Text, TypeName(TB_Email_2)},
{"Email3", TB_Email_3, TB_Email_3.Text, TypeName(TB_Email_3)},
{"Fator", TB_Fator, TB_Fator.Text, TypeName(TB_Fator)},
{"Advalore", TB_Advalore, TB_Advalore.Text, TypeName(TB_Advalore)},
{"LimiteValor", TB_L_Valor, TB_L_Valor.Text, TypeName(TB_L_Valor)},
{"LimiteCredito", TB_L_Credito, TB_L_Credito.Text, TypeName(TB_L_Credito)},
{"DataCadastro", TB_Data_Cadastro, TB_Data_Cadastro.Value, TypeName(TB_Data_Cadastro)},
{"Credito", CB_Credito, CB_Credito.Checked, TypeName(CB_Credito)},
{"Pendencias1", CB_Pendencias_1, CB_Pendencias_1.Checked, TypeName(CB_Pendencias_1)},
{"Pendencias2", CB_Pendencias_2, CB_Pendencias_2.Checked, TypeName(CB_Pendencias_2)},
{"Pendencias3", CB_Pendencias_3, CB_Pendencias_3.Checked, TypeName(CB_Pendencias_3)}}
Else
Return {{"Nome", TB_Nome, TB_Nome.Text, TypeName(TB_Nome)},
{"Documento", TB_Doc, TB_Doc.Text, TypeName(TB_Doc)},
{"Endereco", TB_Endereco, TB_Endereco.Text, TypeName(TB_Endereco)},
{"Numero", TB_Numero, TB_Numero.Text, TypeName(TB_Numero)},
{"Bairro", TB_Bairro, TB_Bairro.Text, TypeName(TB_Bairro)},
{"CEP", TB_CEP, TB_CEP.Text, TypeName(TB_CEP)},
{"Cidade", TB_Cidade, TB_Cidade.Text, TypeName(TB_Cidade)},
{"Estado", TB_Estado, TB_Estado.Text, TypeName(TB_Estado)},
{"Observacoes", TB_Observacoes, TB_Observacoes.Text, TypeName(TB_Observacoes)},
{"Tel1", TB_Telefone_1, TB_Telefone_1.Text, TypeName(TB_Telefone_1)},
{"Tel2", TB_Telefone_2, TB_Telefone_2.Text, TypeName(TB_Telefone_2)},
{"Tel3", TB_Telefone_3, TB_Telefone_3.Text, TypeName(TB_Telefone_3)},
{"Tel4", TB_Telefone_4, TB_Telefone_4.Text, TypeName(TB_Telefone_4)},
{"Email1", TB_Email_1, TB_Email_1.Text, TypeName(TB_Email_1)},
{"Email2", TB_Email_2, TB_Email_2.Text, TypeName(TB_Email_2)},
{"Email3", TB_Email_3, TB_Email_3.Text, TypeName(TB_Email_3)},
{"DataCadastro", TB_Data_Cadastro, TB_Data_Cadastro.Value, TypeName(TB_Data_Cadastro)},
{"Credito", CB_Credito, CB_Credito.Checked, TypeName(CB_Credito)},
{"Pendencias1", CB_Pendencias_1, CB_Pendencias_1.Checked, TypeName(CB_Pendencias_1)},
{"Pendencias2", CB_Pendencias_2, CB_Pendencias_2.Checked, TypeName(CB_Pendencias_2)},
{"Pendencias3", CB_Pendencias_3, CB_Pendencias_3.Checked, TypeName(CB_Pendencias_3)}}
End If
End Function
' Then execute SQL commands and etc etc etc...
它会输出类似的东西,它可以工作,但速度很慢。
UPDATE TAB_SACADOS
SET NOME = 'NAME OF GUY',
DOCUMENTO = '0115648787',
ENDERECO = 'AVENUE A',
NUMERO = '15',
BAIRRO = '90 ROCK',
CEP = '80.000-000',
CIDADE = 'BALBOA',
ESTADO = 'RS',
OBSERVACOES = '',
TEL1 > = '(55)55555-5556', TEL2 = '', TEL3 = '', TEL4 = '',
EMAIL1 = '', EMAIL2 = '', EMAIL3 = '',
DATACADASTRO = '27/09/2019 00:00:00',
CREDITO = 'FALSE', PENDENCIAS1 = 'FALSE', PENDENCIAS2 = 'FALSE',
PENDENCIAS3 = 'FALSE' WHERE ID = 3
在互联网上进行了一些研究后,我发现了该功能.Parameters.Addwithvalue
,似乎是正确的使用方法。但我试图弄清楚如何制作一个返回所有这些参数(或任何更好/实用的参数)的函数。
我可以对每个 INSERT、DELETE 和 UPDATE 函数都这样做,但这不切实际。
.Parameters.Addwithvalue(@ID, objid.value)
.Parameters.Addwithvalue(@Name, name.text)
.Parameters.Addwithvalue(@Address, fieldaddress.text)
在这一点上我需要帮助,改进这个工作代码。有什么建议吗?
解决方案
推荐阅读
- vuejs2 - 带有铯的 VueJS2:未捕获的 typeError:无法使用 ScreenSpaceEventHandler 读取未定义的属性“查看器”
- c++ - 类似于在 CGAL 中计算精确偏移量,我可以计算折线的“精确缓冲区”吗?
- java - Jackson:在运行时配置字段名称
- sublimetext3 - 在 sublime-text 的终端中取回正在运行的终端
- python-3.x - NOT NULL 约束失败:core_question.poll_id 错误
- css - 渲染插入框阴影中的错误?
- angular - 订阅函数外未定义的变量
- kotlin - 如何验证具有这些要求的字符串
- python - 如何显示两个消息框,每个消息框有两个条件?
- node.js - 批量喂食新商品时,我从 Walmart Canada Maketplace API 收到 404