NO MYSQL BEM CORRETO NO VB.NET VEM INCORRETO
Boa Noite.
Tenho um select que quando consulto no MySQL vem correto, mas quando abro o relatório vem duplicando os registros
Ja tentei de varias formas e nao consegui, esta foi a ultima forma que tentei
Obrigado desde ja
Tenho um select que quando consulto no MySQL vem correto, mas quando abro o relatório vem duplicando os registros
Dim sqlOS As String = [Ô]SELECT DISTINCT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN [ô][Ô] & DataInicial & [Ô][ô] AND [ô][Ô] & DataFinal & [Ô][ô] GROUP BY OS_ID,CLI_ID having count(*) = 1[Ô]
Ja tentei de varias formas e nao consegui, esta foi a ultima forma que tentei
Obrigado desde ja
melhor voce indicar exatamente quais campos vc precisa. do jeito que vc informou, está pesquisando todos os campos de todas as tabelas.
ja fiz isso e continua com o mesmo erro
Alterei o seu SQL para usar o comando Date Format para quando você informar a data que vem da sua aplicação, instrua o banco pesquisar com a data no formado dd/mm/aaaa.
Dim sqlOS As String = [Ô]SELECT DISTINCT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN DATE_FORMAT([Ô] & DataInicial & [Ô], [ô]%d/%m/%Y[ô]) AND TO_DATE([Ô] & DataFinal & [Ô], [ô]%d/%m/%Y[ô]) GROUP BY OS_ID,CLI_ID having count(*) = 1[Ô]
Para referência quando a formatação de datas, você pode acessar estre link -> http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html
Dim sqlOS As String = [Ô]SELECT DISTINCT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN DATE_FORMAT([Ô] & DataInicial & [Ô], [ô]%d/%m/%Y[ô]) AND TO_DATE([Ô] & DataFinal & [Ô], [ô]%d/%m/%Y[ô]) GROUP BY OS_ID,CLI_ID having count(*) = 1[Ô]
Para referência quando a formatação de datas, você pode acessar estre link -> http://dev.mysql.com/doc/refman/4.1/pt/date-and-time-functions.html
Deu erro Amigão
Truncated incorrect datetime value: [ô]1998[ô]
o estranho de tudo isso, é que no MySQL Administrator isso funciona normal, mas quando jogo no VB.NET e abro o Crystal da duplicidade
Truncated incorrect datetime value: [ô]1998[ô]
o estranho de tudo isso, é que no MySQL Administrator isso funciona normal, mas quando jogo no VB.NET e abro o Crystal da duplicidade
Antes enviar o comando MySql, tente manipular suas strings [Ô]DataInicial[Ô] e [Ô]DataFinal[Ô] para o seguinte formato: MM/dd/yyyy e, antes e depois delas, coloque #:
Exemplo: Se sua data de inÃcio for 14/05/1998, envie para o MySql #05/14/1998#
Se sua data final for 14/06/1998, envie para o MySql #06/14/1998#
Dim sqlOS As String = [Ô]SELECT DISTINCT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN #[Ô] & DataInicial & [Ô]# AND #[Ô] & DataFinal & [Ô]# GROUP BY OS_ID,CLI_ID having count(*) = 1[Ô]
Exemplo: Se sua data de inÃcio for 14/05/1998, envie para o MySql #05/14/1998#
Se sua data final for 14/06/1998, envie para o MySql #06/14/1998#
Dim sqlOS As String = [Ô]SELECT DISTINCT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN #[Ô] & DataInicial & [Ô]# AND #[Ô] & DataFinal & [Ô]# GROUP BY OS_ID,CLI_ID having count(*) = 1[Ô]
Pegudo tentei o seu exemplo tambem,
deu o seguinte erro
Incorrect date value: [ô]#2010/01/01#[ô] for column [ô]OS_DTENTRADA[ô] at row 1
lembrando que tentei todas as formatações de data possiveis
deu o seguinte erro
Incorrect date value: [ô]#2010/01/01#[ô] for column [ô]OS_DTENTRADA[ô] at row 1
lembrando que tentei todas as formatações de data possiveis
Qual banco de dados que você está usando? Se você colocou # entre os campos datas em base de dados diferente do Access, vai dar erro!!!
eu utilizo MySQL
Amigos eu coloco no MYSQL e da certo
no VB.NET nãio funciona
deem uma olhada
Amigos eu coloco no MYSQL e da certo
no VB.NET nãio funciona
deem uma olhada
Public Sub GerarRelatorio(ByVal DataInicial As String, ByVal DataFinal As String)
[ô]definir as variáveis de conexão
Dim dsPc As New DataRelPeriodoOS
[ô]definir a string de conexão e as instruções sql para cada tabela
Dim sqlOS As String = [Ô]SELECT * FROM CADOS[Ô] & _
[Ô] INNER JOIN CADCLI ON CLI_ID = OS_IDCLI[Ô] & _
[Ô] INNER JOIN CADEMPRESA ON EMP_CODIGO = OS_EMP[Ô] & _
[Ô] WHERE OS_DTENTRADA BETWEEN [ô][Ô] & DataInicial & [Ô][ô] AND [ô][Ô] & DataFinal & [Ô][ô] GROUP BY OS_ID,CLI_ID[Ô]
Try
[ô]Criar os objetos dataadatper
objConexao.Conectar()
objConexao.da = New MySqlDataAdapter(sqlOS, objConexao.Conexao)
[ô]Preenche as tabelas do dataset usando o dataadapter
objConexao.da.Fill(dsPc, [Ô]cados[Ô])
objConexao.da.Fill(dsPc, [Ô]cadcli[Ô])
objConexao.da.Fill(dsPc, [Ô]cadempresa[Ô])
[ô]Preencher o relatório e exibÃ-lo no visualizador
Dim rptOS As New frmRelxOSPeriodo1
rptOS.SetDataSource(dsPc)
CrystalReportViewer.ReportSource = rptOS
Catch ex As Exception
MessageBox.Show(ex.ToString)
End Try
End Sub
Seguinte cara eu utilizo o MySql aqui na empresa também e, mesmo eu tendo colocado o campo de datas como do tipo [Ô]time[Ô], eu não coloco aspas simples.
Tente da seguinte maneira:
Utilize seu código do jeito que está, mas retire as aspas simples das variáveis DataInicial e DataFinal.
Abaixo tem um exemplo de código que eu uso para retornar datas:
RecSet = C.Execute([txt-color=#e80000][Ô]select twitter.*, Assuntos.assunto from assuntos RIGHT JOIN twitter ON assuntos.codassunto = twitter.codassunto [Ô][/txt-color] & Filtro & [txt-color=#e80000][Ô] order by codigo desc[Ô][/txt-color])
A variável Filtro contém minha data. Eu acho que assim seu código não dará erros e não retornará duplicidades. Espero que te ajude.
Tente da seguinte maneira:
Utilize seu código do jeito que está, mas retire as aspas simples das variáveis DataInicial e DataFinal.
Abaixo tem um exemplo de código que eu uso para retornar datas:
RecSet = C.Execute([txt-color=#e80000][Ô]select twitter.*, Assuntos.assunto from assuntos RIGHT JOIN twitter ON assuntos.codassunto = twitter.codassunto [Ô][/txt-color] & Filtro & [txt-color=#e80000][Ô] order by codigo desc[Ô][/txt-color])
A variável Filtro contém minha data. Eu acho que assim seu código não dará erros e não retornará duplicidades. Espero que te ajude.
Pegudo deu o seguinte erro
Incorrect date value: [ô]1998[ô] for column [ô]os_dtentrada[ô] at row 1
o que estou querendo mostrar a vocês é que no MYSQL ADMINISTRATOR funciona
e no VB.NET NAO funciona, o erro não deve estar no SELECT
Incorrect date value: [ô]1998[ô] for column [ô]os_dtentrada[ô] at row 1
o que estou querendo mostrar a vocês é que no MYSQL ADMINISTRATOR funciona
e no VB.NET NAO funciona, o erro não deve estar no SELECT
Tópico encerrado , respostas não são mais permitidas