PLAA Hemantha Ответов: 0

"Ошибка входа в систему" используйте crystal report 9 с двумя таблицами


Привет,
Я пытаюсь создать отчет с помощью Crystal report viewer 9 ,MS SQL и VB6. Я разработал отчет с использованием подключения OLE DB(ADO). Я соединяю один стол. Мой код таков,
Option Explicit
Dim Appl As New CRAXDRT.Application
Dim Report As New CRAXDRT.Report

Private Sub Print_Click()

   Set Appl = New CRAXDRT.Application
   Set Report = Appl.OpenReport(App.Path & "\Bill1.rpt")
   
   Set rs = New ADODB.Recordset
   
   strReso = "SELECT BI_BILLNO,IM_Description,IM_SPrice,BI_QUANTITY,BI_AMOUNT " + _
   "From BILLITEM,ITEMMASTER Where BI_BILLNO = " + Trim(txtBillNo.Text) + _
   " and BI_ITEMCODE = IM_ItemCode"
   rs.Open strReso, conMain, adOpenStatic, adLockReadOnly
   
   Report.DiscardSavedData
   Report.ParameterFields.GetItemByName("BillNo").AddCurrentValue txtBillNo.Text
   Report.Database.SetDataSource rs
   
   CRViewer91.ReportSource = Report
   
   CRViewer91.ViewReport

End Sub

Строка "str1 выглядит следующим образом = "поставщик=sqloledb.1;идентификатор пользователя = hemantha; пароль=19760207;начальный каталог=Waruni_Sale_System;источник данных=""

Это работает. Но, когда я использовал две таблицы, возникло сообщение об ошибке как
"Не удалось выполнить вход,Deiails: ADO ошибка код 0x80040e4d, источник: поставщик Microsoft oledb для SQL-сервера, описание: ошибка входа пользователя "имя пользователя", состояние SQL: 42000, уроженца ошибка:18456".
Отчет работает в Crystal Report( "предварительный просмотр").
В чем же дело? Кто-нибудь может помочь?

Что я уже пробовал:

Я пытаюсь Распечатать счет с помощью Crystal report viewer 9, VB6, MS SQL 2000.

CHill60

Это не имеет никакого отношения к количеству таблиц, вы не подключаетесь к базе данных должным образом, и вы не показали использовать код, где вы на самом деле подключаетесь.
Я не думаю, что по обе стороны от = должны быть пробелы для идентификатора пользователя - стоит попробовать. И также стоит попробовать войти в систему SSMS с этими деталями.
Кроме того, вы подвергаете себя атакам SQL - инъекций- не используйте конкатенацию строк для создания sql-операторов.
Наконец, вы не должны писать новый код в VB6 - он вышел из поддержки десятилетия назад.

PLAA Hemantha

Спасибо за ваш ответ, Пожалуйста, вы можете отправить какой-нибудь простой проект.

CHill60

Нет, боюсь, что не могу. Я избегал использовать Crystal Reports настолько, насколько это было возможно для человека, и перестал использовать VB6 несколько лет назад. У меня нет его копии, и я не собираюсь раскошеливаться на VB6, когда я могу просто скачать VB.NET бесплатно.
Вы убрали пробелы, как я предложил?
Можете ли вы подключиться через SSMS, как я предложил?

#realJSOP

Я бы посоветовал вам прекратить использовать Crystal Reports, но поскольку вы также используете VB6, я думаю, что вы просто проигнорируете меня.

PLAA Hemantha

Спасибо Мистер Джон,
Actually, I used Data Report. But, I had to face a problem couldn't solve. I want to set leftmargin set to 0 of Data Report. I asked help,I didn't find a solution.See "http://www.vbforums.com/showthread.php?762425-not-set-left-margin-in-printer-please-help-quick" Post 17 and 20. I'm using thermal bill printer. When Post #2 code is used, left margin size is 5mm. But it is 10mm. when I use Data Report and POS machine, can not adjust left margin size to 5mm(on paper. it is viewing as 0 margin on PC). But other all times ( Data Report with other printer, Post #2 code or any other document with POS machine), can adjust left margin size to 5mm. How can I solve this? Please help.

#realJSOP

Вы неправильно поняли - я не заинтересован в том, чтобы помочь вам с этой проблемой. Я здесь только для того, чтобы быть умником...

0 Ответов