Oracle 데이터베이스에 바인드 된 양식이 있습니다.사용자에게 INSERT 권한 만있는 경우 양식을 데이터베이스에 바인드하는 방법
이 양식은 데이터를 입력하기위한 것입니다.
사용자가 양식이 연결된 테이블에 대한 모든 권한을 가지고 있으면 모든 것이 완벽하게 작동합니다. 그러나 사용자가 쓰기 권한 만 가지고 있으면 양식을 바인딩 할 수 없습니다.
Private Function GetDataTable(ByVal TableName As String, ByVal SQL As String) As DataTable
Dim Command As OracleCommand
Dim DataSet As New DataSet
Dim DataTable As DataTable
Dim TempDataAdapter As OracleDataAdapter
Command = New OracleCommand(SQL, OracleObject.Connection)
TempDataAdapter = New OracleDataAdapter(Command)
TempDataAdapter.FillSchema(DataSet, SchemaType.Source, TableName)
TempDataAdapter.Fill(DataSet, TableName)
DataTable = DataSet.Tables(TableName)
Return DataTable
End Function
를 사용하려면, 내가 할 :
GetDataTable('Table1','SELECT * FROM Table1')
이 코드 작품을 여기
내가 모든 폼 컨트롤이 바인딩되는에 데이터 테이블을 얻기 위해 사용하고 코드입니다 사용자가 선택 권한을 가지고 있지 않으면 라인은 :TempDataAdapter.FillSchema(DataSet, SchemaType.Source, TableName)
은 예외입니다. 코드에서 요청 된대로 선택 쿼리를 실행하기 때문에 정상입니다.
사용자가 쓰기 권한 만 가지고있는 경우 양식을 테이블에 바인딩하는 방법은 무엇입니까?
여기에 약한 형식의 데이터 세트를 사용하고 있기 때문에 당신은 '구속'가 무슨 뜻인지 확실하지, 어쨌든 - 당신은 삽입을하려는 경우, 당신은 할 필요가 없습니다 .Fill을 사용하여 기존의 모든 행을 먼저 당깁니다. – peterG
내 말은 사용자가 삽입 권한 만 가지고있을 때 데이터를 삽입하는 양식을 가지고 있다는 것입니다. 어떤 아이디어라도 제발? –
이것을 달성하는 데는 여러 가지 방법이 있습니다. 이 주변에 어떤 다른 제약 조건이 있는지 모르겠으므로 다른 것들에 대해 추천 할 수는 없습니다. 그러나 강력한 형식의 데이터 집합을 만들어 디자이너에서 바인딩 한 다음 .update를 호출 할 수 있습니다. 또는 텍스트 상자 값에서 SQL 삽입 쿼리를 채울 수 있습니다. 그러나 요점은 SELECT 쿼리/.Fill 메서드를 먼저 수행 할 필요가 없다는 것입니다. – peterG