نمایش نتایج 1 تا 28 از 28

نام تاپیک: ساخت DBF

  1. #1

    ساخت DBF

    سلام
    می خواهیم برنامه ای که بنویسیم که پس از اجرا یک DBF بسازد چگونه می توان توسط دستورات SQL یک DBF بسازیم

  2. #2
    کاربر دائمی
    تاریخ عضویت
    بهمن 1382
    محل زندگی
    فعلا ایران - فعلا تهران
    پست
    2,628
    اگر شما یک یک DBF داشته باشید (از قبل)‌ میتونید با دستور Select Into این DBF
    رو اگر موجود نباشد از روی اون اولی بسازید یعنی اینکه این فیلدها رو با نام خاص
    از روی فیلدهای قبلی تولید کنید .
    مثلا
    Select Code as Code1 , Code as Code2 , Name as Xname Into SS From Bank1


    [/code]

  3. #3
    سلام
    می خواهیم از داخل برنامه یک DBF با هر نوع ساختاری که خواستیم بسازیم یعنی در داخل برنامه نوع فیلدها انتخاب شود وبعد بر اساس آن یک DBF ساخته شود

  4. #4
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    شما از داخل فاکس پرو براحتی می تونید این کار رو با یک خط انجام بدین اما در مورد sql اطلاعی ندارم
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  5. #5
    سلام
    دوست عزیز این کار می خواهم در VB انجام دهم

  6. #6

  7. #7
    سلام
    به نظر دوستان فایلهای پایگاه داده ای از چه نوع باشد بهتر است DBF - اکسس-پاراداکس - ...

  8. #8
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    شما خودتون بهتر میدونید بهترین نوع بان بانک های sql هست ولی شما به راحتی می تونید باک اکسس از طریق کد نویسی تولید کنید نمونه برنامه هاش همینجا هست
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  9. #9
    سلام
    یک برنامه نوشته ا م که در آن تعدادی عدد را در یک لیست باکس اضافه می کنم می خواهیم اعداد موجود در این لیست باکس را در داخل یک DBF ذخیره کنیم به شکلی که برنامه بتواند با گرفتن اسم و مشخصات فیلدها DBF را ساخته و اطلاعات را در آن ذخیره کند

  10. #10
    سلام
    لطفا بنده را راهنمائی نمایید

  11. #11
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    فکر نکنم هیچ راهی داشته باشه.
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  12. #12
    سلام
    پس برنامه ای مانند اکسل که می تواند BDF در خروجی داشته باشد چگونه این کار را انجام می دهد

  13. #13
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    شفیعی جان سلام
    در مورد نوشتن در یک DBF باید ساختار فایلهای DBF را بدانی سبس فایل را ایجاد و در آن بنویسی من قبلا ساختار فایلهای DBF را درآورده بودم اما الان یادم نیست درآوردن ساختار آن خیلی ساده است اکر ساختار را درآوردی میتوانی هر نوع فیلدی را ایجاد حذف و تغییر نام بدی یا رکوردی را اضافه یا کم نمایی امیدوارم موفق باشی

  14. #14
    سلام
    منتظر جواب دوستان هستم

  15. #15
    سلام
    با CREATE TABLE می توان فایل ساخت از دستورات SQL در VB چگونه می توان استفاده کرد

  16. #16
    شفیعی جون ببین این بدردت می خوره ؟ :roll:

    البته فکر نمی کنم ... :(

  17. #17
    سلام
    دوست عزیز برنامه ای که من نوشته ام باید بتواند یک فایل DBF بسازد زیرا این فایل بعدا در نرم افزار ARCVIEW مورد استفاده قرار می گیرد و نرم افزار ARCVIEW فقط فایل DBF می گیرد

  18. #18

  19. #19
    سلام
    دوستان دیگر نظری ندارند یعنی هیچ راهی نیست

  20. #20
    شفیعی جان ساختار فایل dbf ثابت است یا هربار فرق میکند؟
    اگر ثابت است یک نمونه بزار یک برنامه برای ساختن ساختارش بهت بدم.
    اگر ساختارش ثابت نیست یا هربار میخواهی با اطلاعات بسازیش پیشنهاد میکنم که یک فایل mdbبا اطلاعاتت بسازی بعد با کد نویسی(البته در foxpro-چون خیلی راحتتره) اونو تبدیل به dbf کنی
    امتحان کن اگر نشد بگو یکاری واست بکنم. :wise1:

  21. #21
    مدیر بخش آواتار binyaz2003
    تاریخ عضویت
    آبان 1382
    محل زندگی
    کرمان
    سن
    39
    پست
    2,107
    یک app تو فاکس پیدا کردم به اسم mdb2dbc که کل بانک اکسس و می گیره و به بانک ویژوال فاکس تبدیل می کنه!
    ولی هنوز خودم باهاش کار نکردم چون سرم خیلی شلوغه !
    اگر بدردتون می خوره و می تونید ریفاکسش کنید و استفاده براتون بزارم
    وب سایت شخصی
    وبلاگ آموزش ویژوال فاکس پرو - به دلیل تعطیل شدن میهن بلاگ نوشته های وبلاگ به وب سایت شخصی منتقل شدند.

  22. #22
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    شفیعی جان
    همانطور که قبلا گفتم ساختار فایلهای DBF را در بیار و هر بار خواستی میتوانی به تعداد لازم فایل DBF بسازی با هر نوع و هر مقدار فیلد .
    مهم این است که ساختار فایل را بدانی سبس میتوانی فایل را از اول ایجاد کنی اگر خواستی من میتوانم ساختار فایلهای dbf را دربیاورم قبلا این کار را کرده ام و الان خوب یادم نیست تا جایی که یادم هست بایت او تا هشتم آن مال تاریخ و همچنین بایتهای دیگر برای طول فایل و آیا فایل حاوی فیلد memo هست یا خیر و یا اینکه فایل Cdx دارد یا خیر و تا آخر سبس از یک بایت مشخص شروع میشود به نام فیلدها و محتویات آنها .
    من همه را به شکل جدول درآورده بودم اگر خواستی من جدول را برات بیدا کنم . موفق باشی

  23. #23
    سلام
    من همه را به شکل جدول درآورده بودم اگر خواستی من جدول را برات بیدا کنم . موفق باشی
    دوست عزیز اگر زحمتی نیست جدول را برایم ارسال کن خیلی ممنون :oops:

  24. #24
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوست عزیز من ساختار فایلهای DBF را در اینجا مینویسم امیدوارم به دردت بخورد . شما میتوانی توسط هر برنامه ای این فایلها را بسازی
    فایلهای DBF از دو قسمت درست شده اند . یک قسمت Header یا ساختار فیلدها و یک قسمت اطلاعات یا ساختار رکوردها

    اما Header یا ساختار فیلدها
    از بایت اول فایل شروع میشود تا بایت 32 فایل . این قسمت همیشه ثابت است و من تک تک بایتها را توضیح میدهم .

    بایت | توضیحات
    0 | اگر این بایت3باشدفایل دارای Memo هست و اگر 245 باشد فیلد Memo ندارد
    |-----------------------------------------------
    1 | سال ایجاد یا ویرایش فایل
    2 | ماه ایجاد یا ویرایش فایل
    3 | روز ایجاد یا ویرایش فایل
    |-----------------------------------------------
    5 | تعداد رکوردهای موجود در بانک که از فرمول زیر حساب میشود
    6 | (3 ^256 × بایت 8) + (3 ^256 × بایت 7) + (1 ^256 × بایت 6) + (0 ^256 7 | × بایت 5)
    8 |
    |-----------------------------------------------
    9 |
    10 | انتهای تعریف رکوردها با کاراکتر 13 ( همیشه کاراکتر 13 است )
    |-----------------------------------------------
    11 |
    12 | طول یک رکورد
    |-----------------------------------------------
    . | . . .
    . | . . .
    . | . . .
    . | . . .
    . | . . .
    |-----------------------------------------------
    29 | اگر CDX داشته باشد برابر یک در غیر اینصورت برابر صفر است
    |-----------------------------------------------
    30 |
    |-----------------------------------------------
    31 |
    |-----------------------------------------------
    32 |
    |-----------------------------------------------

    حال میرسیم به ساختار رکوردها

    هر رکورد در فایهای DBF دارای 17 بایت میباشد نقطه شروع و ختم هر رکورد از همدیگر به تعداد 32 بایت فاصله دارد یعنی نقطه شروع رکورد اول از بایت 33 و رکورد دوم از بایت 65 و سوم از 97 و الی آخر است
    حال به ساختار دقت کنید
    از بایت 33 تا 42 نام فیلد اول است
    بایت 44 نوع فیلد را مشخص میکند
    از بایت 45 تا 46 نقطه شروع فیلد اول است یعنی در بانک محتویات فیلد اول از کدام نقطه شروع میشود .
    بایت 49 طول رکورد است
    بایت 50 تعداد اعشار برای فیلدهای اعشاری است
    حال این ساختار ادامه داده میشود با 32 بایت تفاضل یعنی

    از بایت 65 تا 74 نام فیلد دوم است
    بایت 76 نوع فیلد دوم را مشخص میکند
    از بایت 77 تا 78 نقطه شروع فیلد دوم است
    بایت 81 طول رکورد است
    بایت 82 تعداد اعشار برای فیلدهای اعشاری است
    و به تعداد فیلدها این سری تکرار میشود با 32 بایت اختلاف .
    امیدوارم بتوانی از این ساختار استفاده نمایی من هم چند سال قبل برنامه ای مااند برنامه شما برام پیش آمد و مجبور شدم این ساختار را دربیاورم و خیلی خوب هم از آن استفاده نمودم امیدوارم شما هم موفق باشی . در ضمن ما را هم از کارت بی خبر مگذار
    موفق باشی

  25. #25
    سلام
    مرحله اول کار نمایش لیست فیلدهای فایلهای DBF

    Dim arrByte() As Byte
    Private Sub Form_Load()
    ListView1.View = lvwReport
    ListView1.ColumnHeaders.Add , , "ردیف "
    ListView1.ColumnHeaders.Add , , "نام فیلد"
    ListView1.ColumnHeaders.Add , , "نوع فیلد"
    ListView1.ColumnHeaders.Add , , "سایز"
    ListView1.ColumnHeaders.Add , , "تعداد اعشار"
    End Sub
    Private Sub VIEWDBF_Click()
    FOPEN.ShowOpen
    If FOPEN.FileName = "" Then
    Exit Sub
    End If
    mHandle = FreeFile
    Open FOPEN.FileName For Binary As #mHandle
    MFILESIZE = LOF(mHandle)
    If MFILESIZE = 0 Then
    Close mHandle
    MsgBox "Empty file"
    Exit Sub
    End If
    ListView1.ListItems.Clear
    Label1.Caption = FOPEN.FileName
    Label2.Caption = Str(MFILESIZE)
    ReDim arrByte(1 To MFILESIZE)
    Get #mHandle, , arrByte
    Close mHandle
    H = 0
    Index = 1
    For F = 1 To 200
    H = H + 32
    S = ""
    ListView1.ListItems.Add Index, , Index
    For T = 1 To 9
    If arrByte(H + T) <> 0 Then
    S = S + Chr(arrByte(H + T))
    End If
    Next '' NAME FIELDS
    ListView1.ListItems(Index).SubItems(1& #41; = S
    S = Chr(arrByte(H + 12)) '' TYPE FIELDS
    ListView1.ListItems(Index).SubItems(2& #41; = S
    S = arrByte(H + 17) '' SIZE FIELDS
    ListView1.ListItems(Index).SubItems(3& #41; = S
    S = arrByte(H + 18) '' SIZE DECIMAL
    ListView1.ListItems(Index).SubItems(4& #41; = S
    Index = Index + 1
    If arrByte(H + 33) = 13 Then Exit For
    Next
    End Sub

    با تشکر از زحمات آقای Hossein Bazyan

  26. #26
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دستت درد نکند آقای شفیعی کار را راحت کردی ::نوشتن::

  27. #27
    سلام
    اگر ممکن اسنت دوست عزیز در مورد مطلب زیر بیشتر توضیح دهید

    5 | تعداد رکوردهای موجود در بانک که از فرمول زیر حساب میشود
    6 | (3 ^256 × بایت 8) + (3 ^256 × بایت 7) + (1 ^256 × بایت 6) + (0 ^256 7 | × بایت 5)

  28. #28
    کاربر دائمی
    تاریخ عضویت
    شهریور 1382
    محل زندگی
    هلند
    پست
    1,709
    دوست عزیز سلام

    برنامه ها برای ذخیره اعداد از این استفاده می کنند . اگر گفته میشود Integer دو بایت اشغال میکند و ما عدد 12560 را بخواهیم ذخیره کنیم اگر مانند رشته ذخیره کنیم که 5 بایت اشغال میکند اما ابن عدد از نوع Integer است و باید 2 یابت بخواهد و شیوه ار به این شکل است که عدد را بر 256 تقسیم میکنند مقسوم علیه را میگویند بایت بر ارزش و باقیمانده را بایت کم ارزش میگویند مثلا برای عدد فوق میشود 49 بایت بر ارزش و 16 بایت کم ارزش حال این عدد در فایل به شکل کاراکتر های 49 و 16 ذخیره میشود . برای به دست آوردن عدد هم به شیوه زیر عمل میکنند:
    بایت بر ارزش را در 256 ضرب و با بایت کم ارزش جع میکنند یعنی 49*256+16
    حال در فایلهای DBF برای تعداد روردها هم از متغیر Long استفاده شده که عدد را در 8 بایت ذخیره میکند و از همین شیوه استفاده میکند که فرمول داده شده هم برای به دست آوردن تعداد رکردهای موجود در بانک است .
    امیدوارم که منظورم را فهمیده باشی . موفق باشید

    [/list]

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •