PDA

View Full Version : شناسايي نام جدول ها با ADO



shahram_g
چهارشنبه 06 آبان 1388, 00:21 صبح
سلام.
با كنترل ADO چطوري مي تونم بفهمم نام جدولهاي بانكم چي هست بدون اينكه بخوام فايل اكسس رو باز كنم؟

xxxxx_xxxxx
چهارشنبه 06 آبان 1388, 00:49 صبح
سلام،
برای آگاهی از محتوای هر نوع فایلی اول باید بازش کرد.
وقتی شما ConnectionString رو تنظیم می کنید یعنی فایل رو باز کردید. و قبل از تنظیم ConnectionString هیچ نوع ارتباطی از طریق ADO با دیتابیس نمی تونید برقرار کنید.

mpmsoft
چهارشنبه 06 آبان 1388, 07:57 صبح
برای بانک SQL Server

SELECT name
FROM dbo.sysobjects
WHERE xtype = 'U'

some other types are:
'V' - views
'S' - system tables

mostafa_bahar
چهارشنبه 06 آبان 1388, 08:42 صبح
در داخل recordsource ado تمام جداول بانک و می تونی ببینی

shahram_g
چهارشنبه 06 آبان 1388, 14:01 عصر
سلام،
برای آگاهی از محتوای هر نوع فایلی اول باید بازش کرد.
وقتی شما ConnectionString رو تنظیم می کنید یعنی فایل رو باز کردید. و قبل از تنظیم ConnectionString هیچ نوع ارتباطی از طریق ADO با دیتابیس نمی تونید برقرار کنید.


در داخل recordsource ado تمام جداول بانک و می تونی ببینی

ممنون از پاسختون ولي ظاهرا دوستان منظور من رو درست متوجه نشدند.
بگذاريد سوالم رو واضحتر مطرح كنم:
من مي خوام درون برنامه ام اين امكان رو به كاربر بدم كه يك فايل خاص اكسس رو به ديتابيس اصلي برنامه اضافه كنه واين فايل بايد از نظر ساختار كاملا شبيه ديتا بيس اصلي باشه.
از اونجاييكه كاربر هر فايل اكسس رو ميتونه آدرس بده ولي همه فايلهاي اكسس كه مورد نظر ما نيستند.
برنامه بايد چك كنه كه جداول استفاده شده درون اين بانك دقيقا هموني باشه كه ديتا بيس اصلي هست.
س من به راحتي با ConnectionString به فايل وصل ميشم ولي بايد چك كنم ببينم همون فايلي هست كه من مي خوام يا نه؟
اين كار رو هم بايد برنامه انجام بده چون كاربر به properties برنامه من كه دسترسي نداره.
ممنون

mpmsoft
چهارشنبه 06 آبان 1388, 16:55 عصر
شما باید از ADOX استفاده کنید
' Project references (over and above the defaults)
' -------------------------------------------------------------
' Microsoft ActiveX Data Objects 2.5 Library
' Microsoft ADO Ext. 2.5 for DDL and Security
' Microsoft OLEDB Service Component 1.0 Type Library
' -------------------------------------------------------------

http://www.developerfusion.com/code/1861/database-schema-using-adox/

shahram_g
چهارشنبه 06 آبان 1388, 20:22 عصر
ممنون ولي با همان ADO مشكل حل شد.
اين ماژول رو براي استفاده دوستان قرار ميدهم.
از پاسخ هاي شما هم ممنونم:



Private Sub ListTables(ByVal db_name As String)
Dim statement As String
Dim conn As ADODB.Connection
Dim rs As ADODB.Recordset

' Open a connection.
Set conn = New ADODB.Connection
conn.ConnectionString = _
"Provider=Microsoft.Jet.OLEDB.4.0;" & _
"Data Source=" & db_name & ";" & _
"Persist Security Info=False"
conn.Open

lstTables.Clear
lstFields.Clear

' Use OpenSchema and get the table names.
' The final argument in the parameter array
' is "Table" to indicate we want a list of tables.
Set rs = conn.OpenSchema(adSchemaTables, _
Array(Empty, Empty, Empty, "Table"))
Do While Not rs.EOF
lstTables.AddItem rs!TABLE_NAME
rs.MoveNext
Loop

rs.Close
conn.Close
End Sub