| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Foxpro/Clipper/Dbase > Импорт и экспорт dbf |
| Автор: Фоксик 11.10.2005, 13:25 |
| |
| Автор: Cashey 11.10.2005, 20:34 |
| можно конечно, только лучше открыть базу в фоксе, надо только знать на каком фоксе составлена прога |
| Автор: Dimchik 13.10.2005, 04:19 | ||
да можно но придется открывать базу или на прямую или написать программку которая отроет этот файл в более пристойном виде (например в grid (VFP)) особых проблем быть не должно если что пиши помогу чем смогу |
| Автор: Фоксик 20.10.2005, 15:15 |
| USE (mainform.text1.value) COUNT =RECCOUNT() SELECT zkzid FROM (mainform.text1.value) INTO ARRAY arr1 SELECT * FROM (mainform.text1.value) INTO ARRAY arr2 CLOSE TABLES OPEN DATABASE (mainform.text2.value) USE fsbt!zkz FOR i=1 TO count SELECT * FROM fsbt!zkz WHERE zkzid==arr1[i] INTO ARRAY arr3 if _tally=0 then INSERT INTO fsbt!zkz FROM ARRAY arr2[1] endif endfor CLOSE ALL Здесь я проверял, нет ли в базе такой записи, анализируя уникальный ключ, но так делать нельзя, потому что я сам формирую ключ, когда выгружаю дбфки из 1С. Подскажите, как мне быть, чтобы не вставить одни и те же записи по 2 раза????????? |
| Автор: Dimchik 24.10.2005, 04:19 | ||
если в базе есть индекс то можно воспользоваться командой SEEK (аналогично команде locate for только быстрее т.к. поиск идет по индексу), если нет то вот еще один простой и надежный способ: sele <база в которую добавлять> go top locate for zkzid==arr1[i] && если я правильно понял условие по которому надо искать запись в базе if found() ** т.е. запись найдена else && запись не найдена поэтому добавляем INSERT INTO fsbt!zkz FROM ARRAY arr2[1] endif |