Necessito de uma ajuda para entender o processo SQL.
Tenho duas tabelas abaixo:
:TABELA BR_PREVENDA
CREATE TABLE [BR_PREVENDA] (
[NUMPREVENDA] INTEGER NOT NULL,
[DATA_CAD] DATE NULL,
[DATA_EMISSAO] DATE NULL,
[VENDEDOR] VARCHAR(20) NULL,
[PLANO] VARCHAR(4) NULL,
[ID_CLIENTE] VARCHAR(20) NULL,
[NUMLOJA] VARCHAR(10) NOT NULL,
[CANCELADO] VARCHAR(1) NULL,
[N_CUPOM] INTEGER NULL,
[SERIAL] VARCHAR(60) NULL,
[CONTRZ] INTEGER NULL,
[CPF_CNPJ] VARCHAR(20) NULL,
[ENDERECO] VARCHAR(80) NULL,
[NOME] VARCHAR(70) NULL,
[BAIRRO] VARCHAR(50) NULL,
[CIDADE] VARCHAR(50) NULL,
[CEP] VARCHAR(15) NULL,
[UF] VARCHAR(2) NULL,
[FONE1] VARCHAR(25) NULL,
[FONE2] VARCHAR(25) NULL,
[EMAIL] VARCHAR(100) NULL,
[DESCONTO] NUMERIC(18,3) NULL,
[ACRESCIMO] NUMERIC(18,3) NULL,
[FLAG_LIBERADO] VARCHAR(1) NULL,
[USUARIO_LIB] VARCHAR(50) NULL,
[DTHORA_LIB] TIMESTAMP NULL,
[TIPO] VARCHAR(1) NOT NULL,
[SERIALPV] VARCHAR(30) NULL,
[FLAG_ACEITO] VARCHAR(3) NULL,
[FLAG_SIS] VARCHAR(1) NULL,
PRIMARY KEY ([NUMPREVENDA],[TIPO])
)
e tabela BR_PREVENDA_DETALHE
CREATE TABLE [BR_PREVENDA_DETALHE] (
[NUMPREVENDA] INTEGER NOT NULL,
[LOJA] VARCHAR(10) NOT NULL,
[COD_PRODUTO] VARCHAR(20) NOT NULL,
[QTD] NUMERIC(18,4) NULL,
[UN] VARCHAR(3) NULL,
[VALOR] NUMERIC(18,3) NULL,
[DESCONTO] NUMERIC(18,3) NULL,
[ACRESCIMO] NUMERIC(18,3) NULL,
[TOTAL] NUMERIC(18,3) NULL,
[CANCELADO] VARCHAR(1) NULL,
[N_CUPOM] INTEGER NULL,
[SERIAL] VARCHAR(60) NULL,
[COD_GRADE] VARCHAR(20) NULL,
[ITEM] INTEGER NOT NULL,
[COD_KIT] VARCHAR(20) NULL,
[COD_VENDEDOR] VARCHAR(20) NULL,
[DESC_PRODUTO] VARCHAR(100) NULL,
[ALIQUOTA] VARCHAR(10) NULL,
[SERVICO] VARCHAR(1) NULL,
[SERIALPRODUTO] VARCHAR(100) NULL,
[TIPO] VARCHAR(1) NOT NULL,
[COD_PROD_TCSMART] VARCHAR(30) NULL,
[TIPO_BLOQUEADO] VARCHAR(1) NULL,
[FLAG_SIS] VARCHAR(1) NULL,
[FLAG_ACEITO] VARCHAR(3) NULL,
PRIMARY KEY ([NUMPREVENDA],[COD_PRODUTO],[ITEM],[TIPO])
)
Preciso inserir dados nas duas, para teste enviei o comando SQL abaixo para gravar apenas na TABELA BR_PREVENDA para início e esta retornando erro do SQL.
c_SQL:="INSERT INTO BR_PREVENDA (NUMPREVENDA, TIPO) VALUES( $d_SQL_PV , 'P' )" // apenas os campos NUMPREVENDA e TIPO
m_SQL:=cErrorMsg(sqlite3_exec(b_SQL,c_SQL)) //EXECUTO COMANDO
Após enviado os dados acima, retorna o seguinte erro do SQL.
SQLite_CONSTRAINT
Estou com dúvida porque não grava, estive lendo sobre CONSTRAINT e pelo que entendi é para não permitir que seja gravado dados incorretos, mas o valor que passo é exatamente o valor correto um numero por exemplo 15, inteiro.
Eu fiquei em dúvida se é por falta de enviar dados para os demais campos, ou realmente esta faltando algum comando para tratar a gravação de dados.
Fico grato pela colaboração.
Um Harbraço a todos.
:D