powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы с DataGrid-контролом
3 сообщений из 3, страница 1 из 1
Проблемы с DataGrid-контролом
    #32793065
HiMik2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня на форме DataGrid поселился, я его програмно связываю с таблицей на SQL Server(код ниже).
Проблема в том, что если я просто хожу по ячейкам - потом выдаётся ошибка - (The current row is not available), а редактировать данные - вообще не получается. Новую строку переходом по ячейкам тоже нельзя создать, как в Access'e.

Кто-то знает, как DataGrid приручить?

(ADO 8, Win98SE rus, VB6 SP5, SQL Server 2000 (MSDE))

Option Explicit
Dim cnnTest As ADODB.Connection
Dim rst As ADODB.Recordset
Private Sub Form_Load()

Set cnnTest = New ADODB.Connection
Set rst = New ADODB.Recordset
cnnTest.ConnectionString = "Provider=SQLOLEDB.1;Persist Security Info=False;User ID=sa;Initial Catalog=TB;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=SABUROV;"
cnnTest.Open
rst.ActiveConnection = cnnTest
rst.CacheSize = 100
rst.CursorLocation = adUseClient
rst.CursorType = adOpenDynamic
rst.Source = "Table1"
rst.Open Options:=adCmdTable

Set DataGrid1.DataSource = rst

End Sub

Private Sub Form_Unload(Cancel As Integer)
rst.Close
cnnTest.Close

End Sub

На сервере такая табличка:
CREATE TABLE [Table1] (
[rid] [int] IDENTITY (1, 1) NOT NULL ,
[N] [int] NULL ,
[D] [char] (10) CONSTRAINT [DF_Table1_D] DEFAULT ('hhh'),
CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED
(
[rid]
) ON [PRIMARY]
) ON [PRIMARY]
GO
...
Рейтинг: 0 / 0
Проблемы с DataGrid-контролом
    #32793081
HiMik2004
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кое-что прояснилось
Чтобы можно было вставить новую строку я добавил это:
Код: plaintext
1.
2.
Private Sub DataGrid1_OnAddNew()
    rst.AddNew Array("N", "D"), Array("111", "MMMM")
End Sub
ведь вставить пустую строку нельзя (см. структуру таблицы)!

По поводу "The current row is not available" ...
Если закрывать набор записей в Form_Unload - то проблему не знаю как решить.
Поэтому я добавил отдельную кнопку для закрытия:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
Private Sub cmdExit_Click()
    If rst.State = adStateOpen Then
        rst.Update 
        rst.Close
    End If
    cnnTest.Close
    Set rst = Nothing
    Set cnnTest = nothnig
    Unload Me

End Sub


rst.Update нужен, иначе при rst.Close возникнет ошибка:
Operation is not allowed in this context.

Если кто-то знает больше по этому вопросу - поможите!
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Проблемы с DataGrid-контролом
    #37812467
света555
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
HiMik2004,
у меня проблема с вводам данных в таблицы,выплывает такая же ошибка.что делать?
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Проблемы с DataGrid-контролом
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]