PDA

View Full Version : نحوه خواندن اطلاعات DBF و ذخیره آن در SQL Server



hmdkarimi
دوشنبه 12 تیر 1385, 09:18 صبح
لطفا در مورد اینکه چه جوری می شود اطلاعات یک فایل DBF رو در برنامه ای به زبان #C خواند و داخل SQL ذخیره کرد مرا راهنمایی کنید.

M.GhanaatPisheh
دوشنبه 12 تیر 1385, 10:35 صبح
کامپوننت :
http://www.download3k.com/Install-Spire.DataExport.html

javad_hosseiny
دوشنبه 12 تیر 1385, 10:46 صبح
خود sqlserver قابلیت ایمپورت از اکثریت دیتابیس اینجنین ها را دارد (وهمچنین dbf را)
ولی درضمن می تونید جدول dbf خود را بصورت خروجی sql (دستورات sql) تعریف کنید و اون فایل را در sqlserver اجرا نمایید.
یه برنامه ای در بخش فاکس قبلا گذاشته ام که قابلیت تبدیل اطلاعات از جداول مختلف به یکدیگر را دارد (من جمله قابلیت خواندن جدول dbf و تهیه خروجی sql )
نهایتا می تونید درصورت نیاز فایل خروجی sql را مطابق میل (بصورت یک فایل تکست) خود تغییر دهید. و سپس در sqlserver فراخوانی کنید

hmdkarimi
سه شنبه 13 تیر 1385, 07:13 صبح
دوستان عزیز من برای Import کردن در SQL مشکل ندارم و با SQL اینکار رو انجام میدم ولی من می خوام بوسیله خود برنامه که به زبان #C است این کارو کنم تا خود برنامه فایل DBF رو بخونه و در دیتابیس ما که SQL است ذخیره کنه
در ضمن اون کامپوننت که دوست عزیزمون لینکش رو برام گذاشته بود نصب نمیشه و یک Error میده که تصویرش بپیوست هست.


4236

anubis_ir
سه شنبه 13 تیر 1385, 07:59 صبح
وقتی کاری رو میشه به صورت استاندارد انجام داد، چرا کامپوننت؟

کانکشن استرینگ برای دیتابیس فاکس پرو و هم خانواده آن:

"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+dbf_path
و استفاده از :

OdbcConnection

مابقی کار هم مانند کار با سایر دیتابیس‌ها (برای مثال SqlConnection و امثال آن) است.

hmdkarimi
سه شنبه 13 تیر 1385, 09:00 صبح
وقتی کاری رو میشه به صورت استاندارد انجام داد، چرا کامپوننت؟

کانکشن استرینگ برای دیتابیس فاکس پرو و هم خانواده آن:

"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+dbf_path



میشه کمی بیشتر در مورد استفاده کردن از این کانکشن استرینگ توضیح دهید ؛ ممنون میشم

anubis_ir
سه شنبه 13 تیر 1385, 09:45 صبح
dbf_path مسیر "دایرکتوری" فایل dbf است.
برای خواندن اطلاعات از dbf هم کافی است در دستور select بجای نام جدول، نام کامل فایل dbf را قرار دهید.
مابقی کار مانند سایر کدهای ADO.NET‌ ایی است که تابحال نوشته اید. فقط بجای قسمت Sql در اسم اشیاء اینجا قرار گرفته Odbc .

Happy_davood
چهارشنبه 14 تیر 1385, 05:33 صبح
سلام

خوب من هم دو سه روز پیش خواستم تا از طریق خود SQL Server تبدیل رو انجام بدم . منتهی پیغام خطا داد و خواست که ODBC Driver برای فایل های DBF نصب بشه و بعد . خلاصه نتونستم .

لطفاً اگر ممکنه روش تبدیل و ریختن اطلاعات فایل DBF به بانک SQL رو هم توضیح بدید .

تشکر

hmdkarimi
چهارشنبه 14 تیر 1385, 09:22 صبح
سلام

خوب من هم دو سه روز پیش خواستم تا از طریق خود SQL Server تبدیل رو انجام بدم . منتهی پیغام خطا داد و خواست که ODBC Driver برای فایل های DBF نصب بشه و بعد . خلاصه نتونستم .

لطفاً اگر ممکنه روش تبدیل و ریختن اطلاعات فایل DBF به بانک SQL رو هم توضیح بدید .

تشکر


از این لینک میتونی Provider فاکس پرو رو دانلود کنی
http://msdn.microsoft.com/vfoxpro/downloads/updates/default.aspx

Happy_davood
چهارشنبه 14 تیر 1385, 11:44 صبح
خوب من فایل vfpoledb رو داون کردم و نصب هم شد . منتهی مشکل اینجاست که من از بین گزینه های مختلفی که در پنجزه Import وجود داره دقیقاً نمی دونم باید کدام ها رو انتخاب کنم .

حتی سعی کردم DNS هم ایجاد کنم ولی متاسفانه نتونستم .
ضمناً فایل من DBF تحت داس هست .

لطفاً روش کار رو هم توضیح بدید .

تشکر

ESG_Esfahan
چهارشنبه 14 تیر 1385, 23:14 عصر
سلام
من چند وقت پیش یه برنامه مجانی در قسمت آگهی های همین سایت گرفتم که این کار را به درستی انجام می ده لینکش درست یادم نیست سرچ کن حتما پیداش می کنی .

hmdkarimi
دوشنبه 19 تیر 1385, 12:43 عصر
dbf_path مسیر "دایرکتوری" فایل dbf است.
برای خواندن اطلاعات از dbf هم کافی است در دستور select بجای نام جدول، نام کامل فایل dbf را قرار دهید.
مابقی کار مانند سایر کدهای ADO.NET‌ ایی است که تابحال نوشته اید. فقط بجای قسمت Sql در اسم اشیاء اینجا قرار گرفته Odbc .



من نتونستم این کارو تو برنامه پیاده سازی کنم ، یه نمونه برنامه که به این روش نوشته شده باشه رو میشه برام بزارین یا یک متن که کاملتر توضیح داده باشه ، ممنون میشم

FA2007
یک شنبه 24 تیر 1386, 09:42 صبح
وقتی کاری رو میشه به صورت استاندارد انجام داد، چرا کامپوننت؟

کانکشن استرینگ برای دیتابیس فاکس پرو و هم خانواده آن:

"Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq="+dbf_path
و استفاده از :

OdbcConnection

مابقی کار هم مانند کار با سایر دیتابیس‌ها (برای مثال SqlConnection و امثال آن) است.
من کارایی که گفتید رو انجام دادم ولی این errorرو میده:
An unhandled exception of type 'System.Data.Odbc.OdbcException' occurred in System.Data.dll
Additional information: ERROR [42S02] [Microsoft][ODBC dBase Driver] The Microsoft Jet database engine could not find the object 'ABSPersonel.dbf'. Make sure the object exists and that you spell its name and the path name correctly.
نگید که مسیر یااسم فایلم اشتباهه،چون مطمئنم که درسته.
کدی کهنوشتماینه:

OdbcConnection odbccon = newOdbcConnection("Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=c:\\path");
OdbcCommand odbccom = newOdbcCommand("select * from ABSPersonel.dbf",odbccon);
OdbcDataReader rdr;
odbccon.Open();
rdr = odbccom.ExecuteReader ();
textBox1.Text = rdr.ToString();
odbccon.Close();

hmdkarimi
چهارشنبه 25 آذر 1388, 09:44 صبح
using System.Data.Odbc;
using System.IO;

public SqlConnection sql_connection = new SqlConnection("Data Source=(local);Initial Catalog=database_name;" + "Integrated Security=SSPI;Connection Timeout=0");


OdbcConnection oConn = new OdbcConnection();
oConn.ConnectionString = @"Driver={Microsoft dBase Driver (*.dbf)};SourceType=DBF;SourceDB=pathforDFBfile;Ex clusive=No; Collate=Machine;NULL=NO;DELETED=NO;BACKGROUNDFETCH =NO;";
oConn.Open();
OdbcCommand oCmd = oConn.CreateCommand();
oCmd.CommandText = @"SELECT * FROM dbf_file.dbf";
DataTable dt = new DataTable();
dt.Load(oCmd.ExecuteReader());
oConn.Close();

long[] temp;
int count = dt.Columns.Count;
foreach (DataRow dr in dt.Rows)
{
temp = new long[count];
for (int i = 0; i < count; i++)
{
temp[i] = Convert.ToInt64(dr.ItemArray[i]);
}

sql_connection.Open();
com = new SqlCommand("Insert Into " + nametable + "(" + namefilds + ")VALUES(" + VALUES + ")", sql_connection);
com.CommandTimeout = 0;
com.ExecuteNonQuery();
sql_connection.Close();

}
MessageBox.Show("Data inserted successfully");

kia1349
چهارشنبه 25 آذر 1388, 11:47 صبح
به بخش فاکس پرو مراجعه کن اولین پست اونو مطالعه کن