ورود

View Full Version : سوال: كپي تعدادي از ركوردهاي يك DBF روي يك DBF ديگر ؟؟



mbzadegan
پنج شنبه 18 مهر 1387, 09:28 صبح
دوستان فرض كنيد كه يك DBF داريم كه اطلاعات پرسنلي داخل آن هست حال اگر بخواهيم در اين DBF با دستورات SEEK و ()IF found دنبال اطلاعات چند كد پرسنلي بگرديم وآن اطلاعات را داخل فايل DBF دومي بريزيم بايد چگونه عمل كنيم ؟:افسرده:

من با دستورات APPEND FROM و COPY TO و ... چند بار امتحان كردم ولي با اين دستورات تمامي محتويات فايل مبدا ( DBF اول ) در فايل مقصد ( DBF دوم ) كپي مي شود و نمي توانم ركورد هاي انتخابي فايل اول را در فايل دوم كپي كنم !!!!!!!:گریه:

با تشكر...:تشویق:

kia1349
پنج شنبه 18 مهر 1387, 09:33 صبح
دستور APPEND FROM میتواند با گزینه for محدوده مشخصی از اطلاعات شما را انتخاب و اضافه کند
اگر این دستور و مثالهای آن را که در help فاکس موجود است مطالعه کنید براحتی به نتیجه میرسید و این راه بسیار راحت است هر چند روشهای دیگری هم وجود دارد

shamim_41
جمعه 19 مهر 1387, 03:56 صبح
اگه می خوای یک بار این کار رو انجام بدی بهتره یک فیلد به بانک اولت اضافه کنی مثلا trow نوع فیلد هم کارکتر یا عدد فرقی نمی کنه بعد از اینکه با دستور seek یا fiun() رکورد مورد نظر رو پیدا می کنه همونجا فیلدtrow را یک عدد جایگزین کن بعد با دستور set filtr فیلد trow رو فیلتر کن می تونی بعدش کپی تو هم بکنی

clos data
use personel
index on per_no tag personel
sele 1
use per
sele 2
use personel
set orde to personel

sele per
do whil !eof()
m_perno=per_no
sele personel
go top
=seek(m_perno)
if foun()
repl t_row with 1
endif
sele per
skip
endd
sele personel
set filt to t_row=n
copy to mfile

اما اگه زیاد باهش کار داری بهتره یک برنامه کوچک براش بنویسی

kia1349
شنبه 20 مهر 1387, 06:46 صبح
دستور APPEND FROM با گزینه for کاملا شبیه سازی دستورات sql است
شما با دستور update و insert به ترتیب میتوانید اطلاعات خود را از طریق جداول دیگر آپدیت کرده و یا به داخل آن دیتای جدید وارد کنید

IC_prog
شنبه 20 مهر 1387, 08:23 صبح
در تکمیل فرمایش اساتید و بعنوان یکی از روشها :
ابتدا به روی رکورد مورد نظر رفته و با SCATTER TO arrayname اطلاعات رکورد را به یک آرایه ارسال و سپس در dbf مقصد با اجرای APPEND FROM ARRAY arrayname
اطلاعات رکورد مورد نظر در dbf مقصد کپی میشود.البته به شرط اینکه هر دو dbf دارای ساختار یکسان باشند.