Visual FoxPro и VS2008 не показват всички DBF записи. Отделна конструкция го прави

Работя върху проект във Visual Studio 2008 (във vb.net). Приложението трябва да импортира данни от база данни на Visual FoxPro (dbc файл). Не питайте защо FoxPro. Трябва да е vfp и базата данни се актуализира ежедневно от друго приложение; следователно не мога да използвам друг формат на база данни.

Свързвам се с базата данни чрез OleDb FoxPro драйвер (най-новата версия). Всичко е наред (освен скоростта). Мога да импортирам данни от всички таблици, които ми трябват (dbf файлове). Зареждам го в набор от данни и след това работя със самия набор от данни, за да не губя време при повторно свързване (просто трябва да прочета данни на този етап).

Проблемът е: Не всички записи се показват, когато компилирам и стартирам кода.

Въпреки това, когато стартирам компилирана версия от папката Release (в директорията bin), приложението показва повече записи.

По-озадачаващо е, че когато отворя същия файл с таблица с данни във Visual FoxPro 9.0, мога да видя само данните, които се показват във VS2008 (не във версията Realease). Ако обаче отворя dbf в OpenOffice Calc, той показва всички записи - тоест същите записи като Release версията на моето приложение.

Първата ми мисъл беше: ако не показва всичко във VFP 9, файловете трябва да са създадени в различна версия на VFP, така че трябва да променя своя низ за връзка. Защо обаче компилираната версия Release ще показва всички правилни данни? Низът за свързване трябва да е наред.

Изтеглих DBF Viewer Plus, за да разгледам моите dbfs в друго приложение, но не може вижте всички записи.

Нямам представа защо се държи по този начин. И е доста досадно, защото трябва да правя компилация на приложението си всеки път, когато искам да го тествам.

Разработвам под Windows Vista.

Благодаря ви за цялата ви помощ!


person jfrej    schedule 21.11.2009    source източник


Отговори (3)


Не съм работил с foxpro от няколко години, но преди беше "функция" на dbf файловете, че когато изтриете запис, той всъщност не изчезва, докато не "опаковате" файла. Той просто задава флаг, който показва, че записът е изтрит и повечето изгледи на foxpro на файла го филтрират съответно, но той все още е там и е видим за oledb връзките.

редактиране: друга възможност е индексът, който използвате - ако посочи "уникален", той ще филтрира всички "дублирани" записи в конкретен изглед с изключение на един

person kloucks    schedule 21.11.2009
comment
Страхувам се, че не е това. FoxPro показва записи, маркирани като изтрити, но не показва няколко други. Тези, които ми трябват. Мога да ги видя само когато стартирам компилация на моето приложение или в OpenOffice Calc. Между другото, OOffice не може да види записите, отбелязани като изтрити във FoxPro. - person jfrej; 21.11.2009
comment
Що се отнася до това, което виждам - ​​невъзможността да се види цялата таблица във FoxPro - всички индекси са уникални. Може да е причината, но защо компилираната компилация би показвала всички записи без проблем? Мисля, че има проблем някъде между VS compile/debug и VS release build. Може би някои VS настройки? Поведението във VS среда е различно от поведението извън нея. - person jfrej; 21.11.2009
comment
FYI Има опция DELETED в низа за свързване на OLE DB за включване/изключване на изтрити записи: connectionstrings.com/ visual-foxpro - person Keith; 18.12.2014

От опит мога да кажа, че никога не съм виждал доставчик да се държи по този начин.

VFP може да зададе „филтри“, които влияят на това, което можете да видите по понякога неочевидни начини. Те може да се съхраняват в DBC - възможно ли е другото приложение да задава филтри?

Все пак не разбирам защо данните биха били различни в зависимост от това откъде стартирате приложението, което ме кара да мисля, че се случва нещо друго.

Ако изобщо е възможно, бих ви препоръчал да получите копие на средата за разработка на VFP9 и да отворите DBC в нея - това ще ви даде много повече, за да продължите.

person user50380    schedule 24.11.2009

Възможно ли е средата за разработка да разглежда различен набор от данни? Различен низ за връзка или DSN настройки за средата за разработка?

Рик Шумър VFP MVP

person Rick Schummer    schedule 28.11.2009
comment
Мисля, че е възможно. И се държи така, сякаш има различен низ за връзка (или DSN настройки), но къде ще бъде зададен? Не съм променил никакви настройки на VS по подразбиране и не използвам Dataset Designer - всичко се прави програмно. - person jfrej; 22.12.2009
comment
Не съм много сигурен, тъй като все още не съм разработчик на Visual Studio. Иска ми се да съм полезен повече. - person Rick Schummer; 23.12.2009