2012-04-19 5 views
1

У меня нет опыта программирования с VBScript, и я хотел бы использовать подход OOP. Если вы посмотрите на мой код ниже, вы увидите, что я пытаюсь создать класс доступа к БД с помощью набора методов, который возвращает наборы данных. Понятия не имею, почему, но ошибки приема:VBScript. Ошибка при возврате данных

Microsoft VBScript runtime error '800a01c2' 

Wrong number of arguments or invalid property assignment 

/TrashCan/library/BLL/CreditBLLClass.asp, line 18 

У меня есть .asp страницы:

<body> 
    <!-- #INCLUDE FILE="library\BLL\CreditBLLClass.asp" --> 
    <%    
     Dim creditBLL 
     Dim reader 
     creditBLL = new CreditBLLClass 

      reader = creditBLL.GetData() 
      If reader.EOF = False Then 
       Do While reader.EOF = False 
        Response.Write(reader.Fields("a").Value) 
        reader.MoveNext 
       Loop  
      End If 
    %> 
</body> 

CreditBLLClass.asp:

<!-- #INCLUDE FILE="DatabaseConnectionClass.asp" --> 
<% 
Class CreditBLLClass 
    'Private variables 
    Dim connection 

    Public Default Function Init() 
     Set Init = Me 
     End Function 

    Public Function GetData() 
     connection = new DatabaseConnectionClass 
     GetData = connection.DBGetRecords("select a from b") 
    End Function 
End Class 

%> 

и подключение к базе данных класса

<% 

Class DatabaseConnectionClass 

'Private variables 
dim pConnection 

Public Default Function Init() 

    Set Init = Me 
    End Function 

Public Function DBGetRecords (sSQL) 

    Set pConnection = Server.CreateObject("ADODB.Connection") 
    With pConnection 
      .ConnectionString = "string" 
      .Open 
     End With 
     DBGetRecords = pConnection.Execute (sSQL) 
End Function 

End Class 

%> 

Ple Как мне сказать, что я делаю неправильно? Может быть, существует общий подход к созданию уровня доступа к данным?

+0

Что эти методы 'Init' делать? – AnthonyWJones

+0

Конструкторы по умолчанию .. – Sergejs

+1

Помните, что VBScript не был создан для программирования стиля ООП. Хотя организация кода в классах возможна, а не плохая практика, не слишком сильно заставляйте ООП на VBScript. Позже вы столкнетесь с проблемами/проблемами производительности. –

ответ

4

Ошибка в части ошибки invalid property assignment.

Из кода:

connection = new DatabaseConnectionClass 
GetData = connection.DBGetRecords("select a from b") 

Вы должны использовать Set при использовании объектов.

Изменить его к этому:

Set connection = new DatabaseConnectionClass 
Set GetData = connection.DBGetRecords("select a from b") 
Смежные вопросы