PDA

View Full Version : چگونه میتوان در VB به اطلاعات جدول فاکس پرو دسترسی پیدا کرد



habdolah
چهارشنبه 25 خرداد 1384, 20:04 عصر
من در یک برنام تحت VB میخواهم یک جدول فاکس پرو را بخوانم و روی رکورد ها جستجو نمایم لطفا راهنمائی نمائید.
با تشکر

Alirezagoodarzi
چهارشنبه 25 خرداد 1384, 23:21 عصر
این کار با DAO/Jet میسره
نمونه کدش هم به این شکل میتونه باشه

data1.Connect = "FoxPro 2.5;" ' Specify database type
data1.DatabaseName = "C:\FoxPro" ' Point to directory
data1.RecordSource = "Author" ' Name database table file
data1.Refresh
While Not data1.RecordSet.EOF
Print data1.RecordSet(0) ' Dump field(0) to the form
data1.RecordSet.MoveNext ' for all records
Wend

habdolah
پنج شنبه 26 خرداد 1384, 14:57 عصر
با تشکر
من یک جدول بنام Fngr دارم که شامل ID , DES میباشد این جدول در شاخه :c قرار دارد و میخواهم اطلاعات آن را بخوانم در ضمن Visual Foxpro 6 در کامپیوتر من نصب میباشد.

Alirezagoodarzi
پنج شنبه 26 خرداد 1384, 15:16 عصر
اگر از ویژوال فاکس پرو استفاده میکنید وضع فرق میکنه و از ADO هم میشه استفاده کرد.
براتون میفرستم.

habdolah
پنج شنبه 26 خرداد 1384, 15:37 عصر
متشکرم.
منتظرم.

Alirezagoodarzi
جمعه 27 خرداد 1384, 04:08 صبح
یه فرم جدید ایجاد کن
یک Datagrid1 به اون اضافه کن
کد زیر رو در Form_load بگذار

Private Sub Form_Load()
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
cn.ConnectionString = "Driver={Microsoft Visual FoxPro Driver};SourceType=DBF;SourceDb=C:\"
cn.Open
rs.CursorLocation = adUseClient
rs.Open "select * from fngr.dbf", cn, adOpenStatic
Set DataGrid1.DataSource = rs
DataGrid1.Refresh
End Sub

به شرطی که فایل fngr.dbf دقیقا در روت درایو C باشد وگرنه آدرس دقیق وارد شود
در اصل connectionstring مهمه و datagrid به عنوان مثال و برای مشاهده محتویات dbf هست.
از رکوردست ایجاد شده به هر شکل که بخوایی میشه استفاده کرد.

habdolah
شنبه 28 خرداد 1384, 01:48 صبح
با تشکر
من تمامی دستورات را عینا نوشتم اما در همان خط اول با خطا مواجه شدم.

Alirezagoodarzi
شنبه 28 خرداد 1384, 21:07 عصر
عزیزم اشتباه تایپی داری
خط اول ADODB نه اونی که شما تایپ کردی.
ببینم با ADO چقدر آشنایی داری؟

habdolah
یک شنبه 29 خرداد 1384, 03:31 صبح
با تشکر
مشکل دسترسی به جدول فوق حل شد .
اما مشکل دیگر اینکه :
در جدول فوق دو فیلد id با فرمت character و فیلد FPdate با فرمت General وجود دارد . وقتی میخواهم رکوردی به جدول فوق اضافه نمایم در مورد فیلد general با خطا مواجه میشوم و چنانچه خط فوق را حذف نمایم مشکل حل میشود. لطفا راهنمائی نمائید.

Alirezagoodarzi
یک شنبه 29 خرداد 1384, 06:01 صبح
این Buffer1 چیه .مقدار توش از چه نوعیه؟ چطور مقدار دهی میشه؟

به هر حال اگر اون خط مربوط به CursoLocation حذف کنید مشکل حل میشه .
اون خط موقع استفاده از Datagrid بدرد میخوره.

habdolah
سه شنبه 31 خرداد 1384, 00:26 صبح
دوست عزیز متشکرم.
من مشکل قبلیم با راهنمائی شما حل شد.
اما من وقتی در فاکس پرو فایل fngr را بصورت share مورد اشتفاده قرار میدهم در برنام VB با خطا مواجه میشوم

Alirezagoodarzi
سه شنبه 31 خرداد 1384, 01:35 صبح
منظورتون اینه که وقتی با فایلی روی کامپیوتر دیگر میخواهید ارتباط برقرار کنید این اشکال پیش میاد؟

habdolah
سه شنبه 31 خرداد 1384, 11:44 صبح
ٌٌٌٌْْْسلام
من وقتی با برنامه دیگری در همان کامپیوتر و یا کامپیوتر دیگری بصورت SHAR به فایل FNGR دسترسی پیدا میکنیم برنامه vb این پیغام خطا را میدهد