PDA

View Full Version : ساخت فایل DBF در ویژوال بیسیک



Namazi1343
پنج شنبه 29 مرداد 1394, 01:10 صبح
سلام. برای ایجاد فایل بیمه با فرمت DBf در سایت جستجو کردم متاسفانه نتونستم از پستهای موجود استفاده کنم. لطفا اگه کسی تو این زمینه کار کرده راهنمایی کنه. ممنون میشم.

pbm_soy
پنج شنبه 29 مرداد 1394, 02:52 صبح
باید Microsoft OLE DB Provider for Visual FoxPro 9.0 را دانلود کنید از لینک زیر میتوانید
http://www.microsoft.com/downloads/en/details.aspx?FamilyID=e1a87d8f-2d58-491f-a0fa-95a3289c5fd4

حالا میتوانید توسط کد زیر دیتابیس را ایجاد کنید (یعنی توسط برنامه میتوانید این دیتابیس را ایجاد کنید)


Dim connectionString As String = "Provider=VFPOLEDB.1;Data Source=D:\temp"
Dim connection As New OleDbConnection(connectionString)
Dim command As OleDbCommand

command = connection.CreateCommand()
Dim script As New OleDbParameter("script", "CREATE TABLE Test (Id I, Changed D, Name C(100))")

connection.Open()
command.CommandType = CommandType.StoredProcedure
command.CommandText = "ExecScript"
command.Parameters.Add(script)
command.ExecuteNonQuery()


و اگر میخواهید از فرمت dBase IV استفاده کنید

Dim connectionString As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=D:\temp;Extended Properties=dBase IV"
Dim connection As New OleDbConnection(connectionString)
Dim command As OleDbCommand
command = connection.CreateCommand()

connection.Open()

command.CommandText = "CREATE TABLE Test (Id Integer, Changed Double, Name Text)"
command.ExecuteNonQuery()


البته قبلش به فرم System.Data.OleDb را ایمپورت کنید

pbm_soy
پنج شنبه 29 مرداد 1394, 02:56 صبح
روشی دیگر (فقط کانکشن استرینگ ساده تر شد)


Dim connectionString As String = "Provider=VFPOLEDB;Data Source=d:\"
Dim connection As New OleDbConnection(connectionString)
Dim command As OleDbCommand

connection.Open()
command = connection.CreateCommand()

command.CommandText = "create table Customer(CustId int, CustName v(250))"
command.ExecuteNonQuery()
connection.Close()

swallow.pa
پنج شنبه 29 مرداد 1394, 10:18 صبح
سلام دوستان اين كد ها جواب نمي دهد .مگه نبايد به كد ايران سيستم تبديل بشه اطلاعات بيمه افراد؟

pbm_soy
پنج شنبه 29 مرداد 1394, 14:48 عصر
من منظور شما را از فایل بیمه نمیفهمم!
شما نحوه ایجاد دیتابیس dbf را خواسته بودید!
اون کد ایران سیستمی که میگید احتمالا برای ساپورت فارسی است از قدیم کاربران و برنامه نویسان فاکس پرو که تحت داس برای فارسی سازی از کدپیجهای استاندارد ایران سیستم استفاده میکردند حتی تامین اجتماعی هم از آن استفاده میکرد

دقیقتر میگفتید میخواهید چیکارکنید!!!
اگه میخواهید برنامه ای بنویسید که لیست بیمه ماهیانه را ثبت کند فکر نمیکنم نیازی به ایجاد فایل dbf داشته باشید کافیست یک نمونه فایل dbf را از برنامه فعلی خود تامین اجتماعی بگیرید و تمام رکوردهاش را حذف کنید و بذارید یک گوشه حالا تو برنامه خودت هروقت نیاز به دیتابیس دارید یک کپی از فایل خالی بگیرید و داده ها را در آن ذخیره کنید

Namazi1343
پنج شنبه 05 شهریور 1394, 02:41 صبح
سلام. از راهنمایی شما خیلی متشکرم. همونطور که گفتید میخوام با کد وی بی فایلهای dbf برای تامین اجتماعی درست کنم. نمونه فیلدهای اون به صورت زیره
DSK_ID c(10), DSK_NAME c(30), DSK_FARM c(30), DSK_ADRS c(40), DSK_KIND n(1), DSK_YY n(2),
که مثلا c(10) یعنی رشته ای به طول 10 و n(2) یعنی عدد دورقمی
با کد دوم یعنی فرمت dBase IV فایل ایجاد شده با فاکس پرو خونده میشه اما نوع و طول فیلدها رو نتونستم درست کنم. ممنون میشم اگه برای این مشکل هم راه حلی بدین.

pbm_soy
جمعه 06 شهریور 1394, 02:44 صبح
روش دوم بهترین کاری اشت که میتوانید انجام بدید
مشکلاتان با این روش چیست؟!

Namazi1343
جمعه 06 شهریور 1394, 10:57 صبح
روش دوم بهترین کاری اشت که میتوانید انجام بدید
مشکلاتان با این روش چیست؟!
سلام. مشکلم اینه که تا حالا این کار رو نکردم و تجربه ای تو این زمینه ندارم.

pbm_soy
چهارشنبه 11 شهریور 1394, 02:45 صبح
خوب اول از همه نرم افزار بیمه را تهیه کنید!
2- داخل فولدرش دنبال فایل dbf موردنظرتون بگردید
3- اگر پیدا کردید از آن فایل کپی بگیرید و توسط foxpro بازش کنید و تمام رکوردهای داخل آنرا حذف کنید (اگر نمیدانید چطوری در فاکس پرو رکوردها پاک میشه بگید تا بگم)
4- فایل دیتابیس خالی را در فولدر برنامه ای که برای اینکار شروع کردید به نوشتن کپی کنید و نامش را تغییر بدهید به test.dbf
5- حالا در برنامه هر وقت قرار شد برای ماه جدید بیمه وارد شود یک کپی از فایل test.dbf با نام دیگر در همان فولدر بگیرید
6- فایل دیتابیس جدید را بازکنید و داده هایی که کاربر وارد کرده را در آن ذخیره کنید

کدامیک از این کارها را تاحالا انجام دادید؟ و کدامها را انجام ندادید؟ و یا مشکل دارید؟
و اگر مشکل دارید روش خودتان را اینجا بگذارید و یا اگر میتواند یک مبحث جدید باشد در یک تاپیک جدید سوال کنید

Namazi1343
چهارشنبه 11 شهریور 1394, 22:41 عصر
خوب اول از همه نرم افزار بیمه را تهیه کنید!
2- داخل فولدرش دنبال فایل dbf موردنظرتون بگردید
3- اگر پیدا کردید از آن فایل کپی بگیرید و توسط foxpro بازش کنید و تمام رکوردهای داخل آنرا حذف کنید (اگر نمیدانید چطوری در فاکس پرو رکوردها پاک میشه بگید تا بگم)
4- فایل دیتابیس خالی را در فولدر برنامه ای که برای اینکار شروع کردید به نوشتن کپی کنید و نامش را تغییر بدهید به test.dbf
5- حالا در برنامه هر وقت قرار شد برای ماه جدید بیمه وارد شود یک کپی از فایل test.dbf با نام دیگر در همان فولدر بگیرید
6- فایل دیتابیس جدید را بازکنید و داده هایی که کاربر وارد کرده را در آن ذخیره کنید

کدامیک از این کارها را تاحالا انجام دادید؟ و کدامها را انجام ندادید؟ و یا مشکل دارید؟
و اگر مشکل دارید روش خودتان را اینجا بگذارید و یا اگر میتواند یک مبحث جدید باشد در یک تاپیک جدید سوال کنید

سلام. با تشکر از پاسختون. خوشبختانه من در فاکس پرو مشکلی ندارم. فقط باز کردن فایل dbf در وی بی و اضافه کردن رکورد رو نمیدونم چطور انجام بدم.

pbm_soy
پنج شنبه 12 شهریور 1394, 02:26 صبح
چند وقته فاکس پرو کار میکنید؟ و در چه حد کار میکنید؟ آیا برنامه هم تولید کردید؟ با نسخه تحت ویندوز کار میکنید؟ و یا تحت داس؟

فعلا باید بروید vb مطالعه کنید و در هر مرحله که سوال دارید یک تاپیک جدید ایجاد کنید و سوال را مطرح کنید

مثلا برای کار با هر دیتابیسی (فرقی نمیکند با چه زبان و ابزاری باشد) باید مراحل کلی زیر را طی کنید
1- متصل شدن به دیتابیس و باز کردن آن
2- اعمال دستورات اطلاعاتی بروی دیتابیس (مانند ذخیره و بازیابی و اصلاح و حذف و ....)
3- بستن دیتابیس

آیا با VB بقیه کارها را مشکل ندارید مثلا طراحی فرمها و کار کردن با کنترلها و غیره

Namazi1343
دوشنبه 16 شهریور 1394, 20:06 عصر
چند وقته فاکس پرو کار میکنید؟ و در چه حد کار میکنید؟ آیا برنامه هم تولید کردید؟ با نسخه تحت ویندوز کار میکنید؟ و یا تحت داس؟

فعلا باید بروید vb مطالعه کنید و در هر مرحله که سوال دارید یک تاپیک جدید ایجاد کنید و سوال را مطرح کنید

مثلا برای کار با هر دیتابیسی (فرقی نمیکند با چه زبان و ابزاری باشد) باید مراحل کلی زیر را طی کنید
1- متصل شدن به دیتابیس و باز کردن آن
2- اعمال دستورات اطلاعاتی بروی دیتابیس (مانند ذخیره و بازیابی و اصلاح و حذف و ....)
3- بستن دیتابیس

آیا با VB بقیه کارها را مشکل ندارید مثلا طراحی فرمها و کار کردن با کنترلها و غیره
سلام. من با کار با فایلهای DBF در فاکس پرو هیچ مشکلی ندارم. در کار با دیتابیسهای SQL در VB هم مشکلی ندارم. مشکل من متصل شدن، اعمال تغییرات در dbf ها، و بستن آنها در VB است. اگر بتونید در این زمینه کمک کنید ممنون میشم

pbm_soy
دوشنبه 16 شهریور 1394, 23:33 عصر
همانطور که قبلا هم گفتم برای سوال جدیدتان تاپیک جدید ایجاد کنید !
از لینکهای زیر هم میتوانید استفاده کنید

https://social.msdn.microsoft.com/Forums/en-US/0d805db5-86e3-4b05-91e0-0dc08e072f4a/dbf-database-with-vbnet?forum=visualfoxprogeneral


https://social.msdn.microsoft.com/Forums/en-US/0d805db5-86e3-4b05-91e0-0dc08e072f4a/dbf-database-with-vbnet?forum=visualfoxprogeneral


http://www.mapwindow.org/phorum/read.php?3,1072

http://www.dreamincode.net/forums/topic/282521-foxpro-table-to-vbnet/

http://www.vbforums.com/showthread.php?674565-RESOLVED-Questions-about-connection-to-a-DBase-file(-dbf)