Jump to content

SUBIECTE NOI
« 1 / 5 »
RSS
Numar magic cu blocaj numerologic

Recomandare firma/persoana pentru...

Motorul se intrerupe la gropi si ...

Plafoniera 132W, 9100lm, consum r...
 Stabilire granita intre proprietati

Impamantare boiler Tesy

Cat costa o omologare la RAR N1-&...

Sunt apele termale daunatoare?
 Ati face o reconversie profesiona...

Nokia XR21

Vibratie tevi boiler cand foloses...

Cat stați acasa in medie?
 Parere stare drum Sculeni - Chisi...

Necesit ajutor in gasirea a doua ...

Monitor 4k 27-28' PD USB C

Vacanta Italia
 

ADO si DataGrid

- - - - -
  • Please log in to reply
4 replies to this topic

#1
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Salut,

Incerc sa fac un programel in vb6 pentru mentenanta unei baze de date. Totul merge ok, mai putin update-ul si delete-ul... (care initial mergeau.. nu imi pot da seama de ce nu mai functioneaza...).
Am incercat tot ce mi-a trecut prin minte, tot ce am gasit pe net, insa fara succes.
Eroarea care apare este: Microsoft DataGrid Control: Insufficient base table information for updateing or refreshing.
Postez mai jos codul, in speranta ca veti fi amabili si ma veti ajuta cu o idee.



Private Sub list1_DblClick()
Dim sSettingLog As String
sSettingLog = GetINISetting("LOG", "NAME", App.Path & "\artsDBv2.ini")
On Error GoTo cmdReceiveError:
cmdReceiveError:
If Err.Number <> "0" Then
Open sSettingLog For Append As #1
Print #1, Now() & " -> > > [list1_DblClick] - " & "[" & Err.Description & " -> > > " & Err.Number & "]"
Close #1
Resume Next
End If

Dim ipp As String
Dim nnume As String
Dim sql As String
Dim MyRs As ADODB.Recordset
Set MyRs = ADO.Recordset
Dim numar As String


ipp = DataGrid2.Columns(5)
nnume = DataGrid2.Columns(1)

Text4.Text = nnume & "->" & ipp
Text1.Text = list1
sql = "SELECT * FROM " & list1 & """"


sql = "SELECT TOP 0 * FROM " & list1 & """"
ADO.ConnectionString = "Driver={c-treeSQL ODBC Driver};Host=" & ipp & ";DSN=PumaPro;Port=6597;Database=DataBase;UID=User; PWD=Password;Option=3"

DataGrid1.ScrollBars = dbgAutomatic

Form1.DataGrid1.AllowUpdate = True

Form1.DataGrid1.AllowDelete = True


ADO.RecordSource = sql
ADO.Refresh
Set DataGrid1.DataSource = ADO
DataGrid1.Columns(0).Width = 0
Text2.Text = DataGrid1.ApproxCount
list2.Clear
Dim NumberOfColumns As Variant
Dim r, c As Integer
NumberOfRows = ADO.Recordset.RecordCount
NumberOfColumns = ADO.Recordset.Fields.Count
For c = 1 To NumberOfColumns - 1
list2.AddItem ADO.Recordset.Fields.Item©.Name
Next
Label5.Visible = True
End Sub



Multumesc anticipat!

#2
danvlas

danvlas

    Guru Member

  • Grup: Senior Members
  • Posts: 11,118
  • Înscris: 04.06.2009
Userul are drepturi de Update/Delete pe tabela respectiva?
Undeva ai "Select Top 0 * From...", ceea ce-ti returneaza doar capul de tabel, fara nici o inregistrare.

#3
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Da, userul are drepturi.

Comanda corecta este cea de jos... am copiat alta in care am nevoie doar de capul de tabel fara nicio inregistrare...

sql = "SELECT * FROM " & list1 & """"

#4
eugen55ro

eugen55ro

    Junior Member

  • Grup: Members
  • Posts: 41
  • Înscris: 18.07.2005
Nu aveti nicio idee?Posted Image

#5
neagu_laurentiu

neagu_laurentiu

    Guru Member

  • Grup: Senior Members
  • Posts: 40,620
  • Înscris: 30.07.2003
Ai o cheie primara la tabelul in cauza ? El face update de nebun, cum localizeaza inregistrarea ? Cum arata codul cu medoda Recordset.Save ori Recordset.Update ?

MyRs ce face pe acolo ?

Edited by neagu_laurentiu, 22 April 2013 - 05:45.


Anunturi

Bun venit pe Forumul Softpedia!

0 user(s) are reading this topic

0 members, 0 guests, 0 anonymous users

Forumul Softpedia foloseste "cookies" pentru a imbunatati experienta utilizatorilor Accept
Pentru detalii si optiuni legate de cookies si datele personale, consultati Politica de utilizare cookies si Politica de confidentialitate