Problemas ao gravar arquivo PDF banco de dados Sql server TADOQuery Stored Procedure
Bom dia pessoal estou com um probleminha quando vou salvar Msg de erro "valor de caractere inválido para especificação de coerção"
Tabela sql server 2008
create table [dbo].[MOV_PNEUS](
[MOV_ID] [UNIQUEIDENTIFIER]ROWGUIDCOL NOT NULL DEFAULT(NEWID()) UNIQUE ,
[ID_MOV] int PRIMARY KEY,
[MOV_DATA]DATETIME NOT NULL DEFAULT(GETDATE()),
[MOV_RESPONSAVEL] VARCHAR(50)NOT NULL,
[MOV_OS]VARCHAR (50)NOT NULL,
[FROM_PROJETO] VARCHAR (50) NOT NULL,
[FROM_LOCACAO] VARCHAR (50) NOT NULL,
[FROM_EQUIPAMENTO]VARCHAR(50) NOT NULL,
[FROM_HORIMETRO] NUMERIC(9,1)NOT NULL,
[FROM_POSICAO] VARCHAR(50) NOT NULL,
[FROM_PNEU_FOGO]NUMERIC(9,0) NOT NULL,
[FROM_MEDIDA] NUMERIC(9,1)NOT NULL,
[FROM_VIDA] VARCHAR (50) NOT NULL,
[FROM_CONDICAO] VARCHAR(50) NOT NULL,
[FROM_DIMENSAOATUAL] NUMERIC(9,1) NOT NULL,
[FROM_CAUSA]VARCHAR (50) NOT NULL,
[FROM_ANEXO] VARBINARY(MAX) FILESTREAM,
[FROM_OBS] VARCHAR (50));
GO
Procedure
ALTER PROC [dbo].[MOV_PNEUS_I](
@TIPO char(1),
@MOV_ID UNIQUEIDENTIFIER,
@MOV_DATA datetime,
@MOV_RESPONSAVEL varchar(50),
@MOV_OS varchar(50),
@FROM_PROJETO varchar(50),
@FROM_LOCACAO varchar(50),
@FROM_EQUIPAMENTO VARCHAR(50),
@FROM_HORIMETRO numeric(9,1),
@FROM_POSICAO varchar(50),
@FROM_PNEU_FOGO numeric(9,0),
@FROM_MEDIDA numeric(9,2),
@FROM_VIDA varchar(50),
@FROM_CONDICAO varchar(50),
@FROM_DIMENSAOATUAL numeric(9,2),
@FROM_CAUSA varchar(50),
@FROM_ANEXO varbinary(max),
@FROM_OBS varchar(50))
AS
BEGIN
IF @TIPO = 'I'
INSERT INTO MOV_PNEUS VALUES (
@MOV_ID,
@MOV_DATA,
@MOV_RESPONSAVEL,
@MOV_OS,
@FROM_PROJETO,
@FROM_LOCACAO,
@FROM_EQUIPAMENTO,
@FROM_HORIMETRO,
@FROM_POSICAO,
@FROM_PNEU_FOGO,
@FROM_MEDIDA,
@FROM_VIDA,
@FROM_CONDICAO,
@FROM_DIMENSAOATUAL,
@FROM_CAUSA,
@FROM_ANEXO,
@FROM_OBS)
END;
Aplicação delphi
procedure TfrmMovPneus.actsalvarExecute(Sender: TObject);
begin
with DMsql.spMovPneus do
begin
Parameters[0].Value:=0; // Return Value
Parameters[1].Value:='I';
Parameters[2].value:= ; // Estou com problemas nesta linha o valar seria 'NewId'
Parameters[3].Value:=eddata.Text;
Parameters[4].Value:=edresponsavel.Text;
Parameters[5].Value:=edos.Text;
Parameters[6].Value:=edprojeto2.Text;
Parameters[7].Value:=edlocacao2.Text;
Parameters[8].Value:=edequipamento2.Text;
Parameters[9].Value:=edhorimetro2.Text;
Parameters[10].Value:=edposicao2.Text;
Parameters[11].Value:=edpneu.Text;
Parameters[12].Value:=edmedida.Text;
Parameters[13].Value:=edvida2.Text;
Parameters[14].Value:=edcondicao2.Text;
Parameters[15].Value:=eddimensao2.Text;
Parameters[16].Value:=edcausa.Text;
Parameters[17].Value:=openDialog1.GetNamePath; // e nesta eu utilizo o opendialog1 para abrir o arquivo para ser salvo...
Parameters[18].value:=edobs.Text;
execProc;
begin
eddata.Clear;
edresponsavel.Clear;
edos.Clear;
edhorimetro2.Clear;
eddimensao2.Clear;
edanexo.Clear;
edobs.Clear;
Application.MessageBox('Cadastro efetuado com sucesso!','Confirmação',mb_Ok+mb_IconInformation);
DMsql.AdoQryCadEquip.Close;
DMsql.AdoQryCadEquip.open;
edresponsavel.SetFocus;
end;
end;
end;
procedure TfrmMovPneus.edanexoClick(Sender: TObject);
begin
if OpenDialog1.Execute then
edanexo.Text:=(OpenDialog1.FileName)
else
ShowMessage('Selecione um Arquivo!!!');
end;
Alguem poderia me ajudar ...?
Tabela sql server 2008
create table [dbo].[MOV_PNEUS](
[MOV_ID] [UNIQUEIDENTIFIER]ROWGUIDCOL NOT NULL DEFAULT(NEWID()) UNIQUE ,
[ID_MOV] int PRIMARY KEY,
[MOV_DATA]DATETIME NOT NULL DEFAULT(GETDATE()),
[MOV_RESPONSAVEL] VARCHAR(50)NOT NULL,
[MOV_OS]VARCHAR (50)NOT NULL,
[FROM_PROJETO] VARCHAR (50) NOT NULL,
[FROM_LOCACAO] VARCHAR (50) NOT NULL,
[FROM_EQUIPAMENTO]VARCHAR(50) NOT NULL,
[FROM_HORIMETRO] NUMERIC(9,1)NOT NULL,
[FROM_POSICAO] VARCHAR(50) NOT NULL,
[FROM_PNEU_FOGO]NUMERIC(9,0) NOT NULL,
[FROM_MEDIDA] NUMERIC(9,1)NOT NULL,
[FROM_VIDA] VARCHAR (50) NOT NULL,
[FROM_CONDICAO] VARCHAR(50) NOT NULL,
[FROM_DIMENSAOATUAL] NUMERIC(9,1) NOT NULL,
[FROM_CAUSA]VARCHAR (50) NOT NULL,
[FROM_ANEXO] VARBINARY(MAX) FILESTREAM,
[FROM_OBS] VARCHAR (50));
GO
Procedure
ALTER PROC [dbo].[MOV_PNEUS_I](
@TIPO char(1),
@MOV_ID UNIQUEIDENTIFIER,
@MOV_DATA datetime,
@MOV_RESPONSAVEL varchar(50),
@MOV_OS varchar(50),
@FROM_PROJETO varchar(50),
@FROM_LOCACAO varchar(50),
@FROM_EQUIPAMENTO VARCHAR(50),
@FROM_HORIMETRO numeric(9,1),
@FROM_POSICAO varchar(50),
@FROM_PNEU_FOGO numeric(9,0),
@FROM_MEDIDA numeric(9,2),
@FROM_VIDA varchar(50),
@FROM_CONDICAO varchar(50),
@FROM_DIMENSAOATUAL numeric(9,2),
@FROM_CAUSA varchar(50),
@FROM_ANEXO varbinary(max),
@FROM_OBS varchar(50))
AS
BEGIN
IF @TIPO = 'I'
INSERT INTO MOV_PNEUS VALUES (
@MOV_ID,
@MOV_DATA,
@MOV_RESPONSAVEL,
@MOV_OS,
@FROM_PROJETO,
@FROM_LOCACAO,
@FROM_EQUIPAMENTO,
@FROM_HORIMETRO,
@FROM_POSICAO,
@FROM_PNEU_FOGO,
@FROM_MEDIDA,
@FROM_VIDA,
@FROM_CONDICAO,
@FROM_DIMENSAOATUAL,
@FROM_CAUSA,
@FROM_ANEXO,
@FROM_OBS)
END;
Aplicação delphi
procedure TfrmMovPneus.actsalvarExecute(Sender: TObject);
begin
with DMsql.spMovPneus do
begin
Parameters[0].Value:=0; // Return Value
Parameters[1].Value:='I';
Parameters[2].value:= ; // Estou com problemas nesta linha o valar seria 'NewId'
Parameters[3].Value:=eddata.Text;
Parameters[4].Value:=edresponsavel.Text;
Parameters[5].Value:=edos.Text;
Parameters[6].Value:=edprojeto2.Text;
Parameters[7].Value:=edlocacao2.Text;
Parameters[8].Value:=edequipamento2.Text;
Parameters[9].Value:=edhorimetro2.Text;
Parameters[10].Value:=edposicao2.Text;
Parameters[11].Value:=edpneu.Text;
Parameters[12].Value:=edmedida.Text;
Parameters[13].Value:=edvida2.Text;
Parameters[14].Value:=edcondicao2.Text;
Parameters[15].Value:=eddimensao2.Text;
Parameters[16].Value:=edcausa.Text;
Parameters[17].Value:=openDialog1.GetNamePath; // e nesta eu utilizo o opendialog1 para abrir o arquivo para ser salvo...
Parameters[18].value:=edobs.Text;
execProc;
begin
eddata.Clear;
edresponsavel.Clear;
edos.Clear;
edhorimetro2.Clear;
eddimensao2.Clear;
edanexo.Clear;
edobs.Clear;
Application.MessageBox('Cadastro efetuado com sucesso!','Confirmação',mb_Ok+mb_IconInformation);
DMsql.AdoQryCadEquip.Close;
DMsql.AdoQryCadEquip.open;
edresponsavel.SetFocus;
end;
end;
end;
procedure TfrmMovPneus.edanexoClick(Sender: TObject);
begin
if OpenDialog1.Execute then
edanexo.Text:=(OpenDialog1.FileName)
else
ShowMessage('Selecione um Arquivo!!!');
end;
Alguem poderia me ajudar ...?
Fábio Roell
Curtidas 0
Respostas
Fábio Roell
06/03/2013
Bom dia pessoal estou com um probleminha quando vou salvar Msg de erro "valor de caractere inválido para especificação de coerção"
Tabela sql server 2008
create table [dbo].[MOV_PNEUS](
[MOV_ID] [UNIQUEIDENTIFIER]ROWGUIDCOL NOT NULL DEFAULT(NEWID()) UNIQUE ,
[ID_MOV] int PRIMARY KEY,
[MOV_DATA]DATETIME NOT NULL DEFAULT(GETDATE()),
[MOV_RESPONSAVEL] VARCHAR(50)NOT NULL,
[MOV_OS]VARCHAR (50)NOT NULL,
[FROM_PROJETO] VARCHAR (50) NOT NULL,
[FROM_LOCACAO] VARCHAR (50) NOT NULL,
[FROM_EQUIPAMENTO]VARCHAR(50) NOT NULL,
[FROM_HORIMETRO] NUMERIC(9,1)NOT NULL,
[FROM_POSICAO] VARCHAR(50) NOT NULL,
[FROM_PNEU_FOGO]NUMERIC(9,0) NOT NULL,
[FROM_MEDIDA] NUMERIC(9,1)NOT NULL,
[FROM_VIDA] VARCHAR (50) NOT NULL,
[FROM_CONDICAO] VARCHAR(50) NOT NULL,
[FROM_DIMENSAOATUAL] NUMERIC(9,1) NOT NULL,
[FROM_CAUSA]VARCHAR (50) NOT NULL,
[FROM_ANEXO] VARBINARY(MAX) FILESTREAM,
[FROM_OBS] VARCHAR (50));
GO
Procedure
ALTER PROC [dbo].[MOV_PNEUS_I](
@TIPO char(1),
@MOV_ID UNIQUEIDENTIFIER,
@MOV_DATA datetime,
@MOV_RESPONSAVEL varchar(50),
@MOV_OS varchar(50),
@FROM_PROJETO varchar(50),
@FROM_LOCACAO varchar(50),
@FROM_EQUIPAMENTO VARCHAR(50),
@FROM_HORIMETRO numeric(9,1),
@FROM_POSICAO varchar(50),
@FROM_PNEU_FOGO numeric(9,0),
@FROM_MEDIDA numeric(9,2),
@FROM_VIDA varchar(50),
@FROM_CONDICAO varchar(50),
@FROM_DIMENSAOATUAL numeric(9,2),
@FROM_CAUSA varchar(50),
@FROM_ANEXO varbinary(max),
@FROM_OBS varchar(50))
AS
BEGIN
IF @TIPO = 'I'
INSERT INTO MOV_PNEUS VALUES (
@MOV_ID,
@MOV_DATA,
@MOV_RESPONSAVEL,
@MOV_OS,
@FROM_PROJETO,
@FROM_LOCACAO,
@FROM_EQUIPAMENTO,
@FROM_HORIMETRO,
@FROM_POSICAO,
@FROM_PNEU_FOGO,
@FROM_MEDIDA,
@FROM_VIDA,
@FROM_CONDICAO,
@FROM_DIMENSAOATUAL,
@FROM_CAUSA,
@FROM_ANEXO,
@FROM_OBS)
END;
Aplicação delphi
procedure TfrmMovPneus.actsalvarExecute(Sender: TObject);
begin
with DMsql.spMovPneus do
begin
Parameters[0].Value:=0; // Return Value
Parameters[1].Value:='I';
Parameters[2].value:= ; // Estou com problemas nesta linha o valar seria 'NewId'
Parameters[3].Value:=eddata.Text;
Parameters[4].Value:=edresponsavel.Text;
Parameters[5].Value:=edos.Text;
Parameters[6].Value:=edprojeto2.Text;
Parameters[7].Value:=edlocacao2.Text;
Parameters[8].Value:=edequipamento2.Text;
Parameters[9].Value:=edhorimetro2.Text;
Parameters[10].Value:=edposicao2.Text;
Parameters[11].Value:=edpneu.Text;
Parameters[12].Value:=edmedida.Text;
Parameters[13].Value:=edvida2.Text;
Parameters[14].Value:=edcondicao2.Text;
Parameters[15].Value:=eddimensao2.Text;
Parameters[16].Value:=edcausa.Text;
Parameters[17].Value:=openDialog1.GetNamePath; // e nesta eu utilizo o opendialog1 para abrir o arquivo para ser salvo...
Parameters[18].value:=edobs.Text;
execProc;
begin
eddata.Clear;
edresponsavel.Clear;
edos.Clear;
edhorimetro2.Clear;
eddimensao2.Clear;
edanexo.Clear;
edobs.Clear;
Application.MessageBox('Cadastro efetuado com sucesso!','Confirmação',mb_Ok+mb_IconInformation);
DMsql.AdoQryCadEquip.Close;
DMsql.AdoQryCadEquip.open;
edresponsavel.SetFocus;
end;
end;
end;
procedure TfrmMovPneus.edanexoClick(Sender: TObject);
begin
if OpenDialog1.Execute then
edanexo.Text:=(OpenDialog1.FileName)
else
ShowMessage('Selecione um Arquivo!!!');
end;
Alguem poderia me ajudar ...?
Tabela sql server 2008
create table [dbo].[MOV_PNEUS](
[MOV_ID] [UNIQUEIDENTIFIER]ROWGUIDCOL NOT NULL DEFAULT(NEWID()) UNIQUE ,
[ID_MOV] int PRIMARY KEY,
[MOV_DATA]DATETIME NOT NULL DEFAULT(GETDATE()),
[MOV_RESPONSAVEL] VARCHAR(50)NOT NULL,
[MOV_OS]VARCHAR (50)NOT NULL,
[FROM_PROJETO] VARCHAR (50) NOT NULL,
[FROM_LOCACAO] VARCHAR (50) NOT NULL,
[FROM_EQUIPAMENTO]VARCHAR(50) NOT NULL,
[FROM_HORIMETRO] NUMERIC(9,1)NOT NULL,
[FROM_POSICAO] VARCHAR(50) NOT NULL,
[FROM_PNEU_FOGO]NUMERIC(9,0) NOT NULL,
[FROM_MEDIDA] NUMERIC(9,1)NOT NULL,
[FROM_VIDA] VARCHAR (50) NOT NULL,
[FROM_CONDICAO] VARCHAR(50) NOT NULL,
[FROM_DIMENSAOATUAL] NUMERIC(9,1) NOT NULL,
[FROM_CAUSA]VARCHAR (50) NOT NULL,
[FROM_ANEXO] VARBINARY(MAX) FILESTREAM,
[FROM_OBS] VARCHAR (50));
GO
Procedure
ALTER PROC [dbo].[MOV_PNEUS_I](
@TIPO char(1),
@MOV_ID UNIQUEIDENTIFIER,
@MOV_DATA datetime,
@MOV_RESPONSAVEL varchar(50),
@MOV_OS varchar(50),
@FROM_PROJETO varchar(50),
@FROM_LOCACAO varchar(50),
@FROM_EQUIPAMENTO VARCHAR(50),
@FROM_HORIMETRO numeric(9,1),
@FROM_POSICAO varchar(50),
@FROM_PNEU_FOGO numeric(9,0),
@FROM_MEDIDA numeric(9,2),
@FROM_VIDA varchar(50),
@FROM_CONDICAO varchar(50),
@FROM_DIMENSAOATUAL numeric(9,2),
@FROM_CAUSA varchar(50),
@FROM_ANEXO varbinary(max),
@FROM_OBS varchar(50))
AS
BEGIN
IF @TIPO = 'I'
INSERT INTO MOV_PNEUS VALUES (
@MOV_ID,
@MOV_DATA,
@MOV_RESPONSAVEL,
@MOV_OS,
@FROM_PROJETO,
@FROM_LOCACAO,
@FROM_EQUIPAMENTO,
@FROM_HORIMETRO,
@FROM_POSICAO,
@FROM_PNEU_FOGO,
@FROM_MEDIDA,
@FROM_VIDA,
@FROM_CONDICAO,
@FROM_DIMENSAOATUAL,
@FROM_CAUSA,
@FROM_ANEXO,
@FROM_OBS)
END;
Aplicação delphi
procedure TfrmMovPneus.actsalvarExecute(Sender: TObject);
begin
with DMsql.spMovPneus do
begin
Parameters[0].Value:=0; // Return Value
Parameters[1].Value:='I';
Parameters[2].value:= ; // Estou com problemas nesta linha o valar seria 'NewId'
Parameters[3].Value:=eddata.Text;
Parameters[4].Value:=edresponsavel.Text;
Parameters[5].Value:=edos.Text;
Parameters[6].Value:=edprojeto2.Text;
Parameters[7].Value:=edlocacao2.Text;
Parameters[8].Value:=edequipamento2.Text;
Parameters[9].Value:=edhorimetro2.Text;
Parameters[10].Value:=edposicao2.Text;
Parameters[11].Value:=edpneu.Text;
Parameters[12].Value:=edmedida.Text;
Parameters[13].Value:=edvida2.Text;
Parameters[14].Value:=edcondicao2.Text;
Parameters[15].Value:=eddimensao2.Text;
Parameters[16].Value:=edcausa.Text;
Parameters[17].Value:=openDialog1.GetNamePath; // e nesta eu utilizo o opendialog1 para abrir o arquivo para ser salvo...
Parameters[18].value:=edobs.Text;
execProc;
begin
eddata.Clear;
edresponsavel.Clear;
edos.Clear;
edhorimetro2.Clear;
eddimensao2.Clear;
edanexo.Clear;
edobs.Clear;
Application.MessageBox('Cadastro efetuado com sucesso!','Confirmação',mb_Ok+mb_IconInformation);
DMsql.AdoQryCadEquip.Close;
DMsql.AdoQryCadEquip.open;
edresponsavel.SetFocus;
end;
end;
end;
procedure TfrmMovPneus.edanexoClick(Sender: TObject);
begin
if OpenDialog1.Execute then
edanexo.Text:=(OpenDialog1.FileName)
else
ShowMessage('Selecione um Arquivo!!!');
end;
Alguem poderia me ajudar ...?
Encontrei o erro....agora falta gravar o arquivo pdf e extrair com aplicação delphi o arquivo do banco de dados?
ALTER PROC [dbo].[MOV_PNEUS_I](
@TIPO char(1),
@MOV_ID UNIQUEIDENTIFIER,
@MOV_DATA datetime,
@MOV_RESPONSAVEL varchar(50),
@MOV_OS varchar(50),
@FROM_PROJETO varchar(50),
@FROM_LOCACAO varchar(50),
@FROM_EQUIPAMENTO VARCHAR(50),
@FROM_HORIMETRO numeric(9,1),
@FROM_POSICAO varchar(50),
@FROM_PNEU_FOGO numeric(9,0),
@FROM_MEDIDA numeric(9,2),
@FROM_VIDA varchar(50),
@FROM_CONDICAO varchar(50),
@FROM_DIMENSAOATUAL numeric(9,2),
@FROM_CAUSA varchar(50),
@FROM_ANEXO varbinary(max),
@FROM_OBS varchar(50))
AS
BEGIN
IF @TIPO = 'I'
INSERT INTO MOV_PNEUS VALUES (
NEWID(), --- Erro encontrado "@MOV_ID" modificado por "NEWID()"
@MOV_DATA,
@MOV_RESPONSAVEL,
@MOV_OS,
@FROM_PROJETO,
@FROM_LOCACAO,
@FROM_EQUIPAMENTO,
@FROM_HORIMETRO,
@FROM_POSICAO,
@FROM_PNEU_FOGO,
@FROM_MEDIDA,
@FROM_VIDA,
@FROM_CONDICAO,
@FROM_DIMENSAOATUAL,
@FROM_CAUSA,
@FROM_ANEXO,
@FROM_OBS)
END;
procedure TfrmMovPneus.actsalvarExecute(Sender: TObject);
begin
with DMsql.spMovPneus do
begin
Parameters[0].Value:=0; // Return Value
Parameters[1].Value:='I';
(* Parameters[2].value:= ;este parametro não é incluido, pois a função NEWID da procedure executa automaticamente*)
Parameters[3].Value:=eddata.Text;
Parameters[4].Value:=edresponsavel.Text;
Parameters[5].Value:=edos.Text;
Parameters[6].Value:=edprojeto2.Text;
Parameters[7].Value:=edlocacao2.Text;
Parameters[8].Value:=edequipamento2.Text;
Parameters[9].Value:=edhorimetro2.Text;
Parameters[10].Value:=edposicao2.Text;
Parameters[11].Value:=edpneu.Text;
Parameters[12].Value:=edmedida.Text;
Parameters[13].Value:=edvida2.Text;
Parameters[14].Value:=edcondicao2.Text;
Parameters[15].Value:=eddimensao2.Text;
Parameters[16].Value:=edcausa.Text;
Parameters[17].Value:=openDialog1.GetNamePath; // Alguem poderia me dizer se este parametro esta correto com opendialog1 para abrir o arquivo para ser salvo...
Parameters[18].value:=edobs.Text;
execProc;
begin
eddata.Clear;
edresponsavel.Clear;
edos.Clear;
edhorimetro2.Clear;
eddimensao2.Clear;
edanexo.Clear;
edobs.Clear;
Application.MessageBox('Cadastro efetuado com sucesso!','Confirmação',mb_Ok+mb_IconInformation);
DMsql.AdoQryCadEquip.Close;
DMsql.AdoQryCadEquip.open;
edresponsavel.SetFocus;
end;
end;
end;
fico no aguardo...
GOSTEI 0