powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / DB_Vista! Экспорт данных. Кто-нибудь еще с оным работает?!
2 сообщений из 2, страница 1 из 1
DB_Vista! Экспорт данных. Кто-нибудь еще с оным работает?!
    #35254340
ныш
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поиском пользовалась, не спасло.
Подскажите 2 вопроса:
1) некая утилита dbexp.exe - или где ее можно взять нормальную или что это за ошибка вылезает:
Exporting contents of data file 'basa.d01'
Exporting contents of data file 'basa.d02'
Record type DEPARTMENT into file name departme.txt
***FATAL ERROR*** unable to write to file.
The disk may be full.
Terminating export.
2) что/куда нужно подключить в Си-шному файлу, что подцепиться к этой базе? Что бы использовать хоть одну из комманд http://www.ousob.com/ng/dbvista/ng2ad.php
В оставленых кодах предыдущим программистом я нашла только файл vista.h, где описание функций/переменных есть, а вот кода уже нет.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
DB_Vista! Экспорт данных. Кто-нибудь еще с оным работает?!
    #36349181
A1ek5andr0
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ныш,
----------------------------------main.cpp------------------------
#include <iostream.h>
#include <stdio.h>
#include <string>

#include <vista.h>

#include "d_123.h"

namespace
{
const long c_lNotCreatedKey = -1;
const char * c_szFirstSubrecord = "First subrecord";
const char * c_szSecondSubrecord = "Second subrecord";
}

/*-------------------------------------------------------------------*/
long CreateNewMyTestRecord_nl()
{
long lKeyCreated = c_lNotCreatedKey;
my_test_record m_t_rec;
memset(&m_t_rec, 0, sizeof(my_test_record));

long lKey = 0;
if(d_keylast(L_UKEY) == S_OKAY)
{
d_keyread(&lKey);
printf("Last found key is %d\n", lKey);
lKey++;
}
m_t_rec.l_ukey = lKey;

if(d_fillnew(MY_TEST_RECORD, &m_t_rec) != S_OKAY)
{
printf("\nAdding new record failed\n");
}
else
{
lKeyCreated = lKey;
}
return lKeyCreated;
}


/*-------------------------------------------------------------------*/
long CreateNewMyTestRecord()
{
long lKeyCreated = c_lNotCreatedKey;

if(d_trbegin("New_my_test_record") == S_OKAY)
{

printf("\nCreation of my test record started\n");
LOCK_REQUEST request;
request.item = MY_TEST_RECORD;
request.type = 'w';

if(d_lock(1, &request) != S_OKAY)
{
printf("\nUnable to lock record MY_TEST_RECORD\n");
}
else
{
lKeyCreated = CreateNewMyTestRecord_nl();
if(lKeyCreated != c_lNotCreatedKey)
{
d_trend();
printf("\nTransaction finished - success (record creation)\n");
}
else
{
d_trabort();
printf("\nTransaction aborted (record creation)\n");
}
}

} // trbegin
return lKeyCreated;
}

/*-------------------------------------------------------------------*/
bool FindByKey(long lKey)
{
bool bFound = false;

LOCK_REQUEST request;
request.item = MY_TEST_RECORD;
request.type = 'r';

if(d_lock(1, &request) == S_OKAY)
{
if(d_keyfind(L_UKEY, &lKey) == S_OKAY)
{
bFound = true;
my_test_record rec;
d_recread(&rec);
}
d_freeall();
}

return bFound;
}

/*-------------------------------------------------------------------*/
void CreateOwnerAndMembers()
{
long lKey = CreateNewMyTestRecord();

d_trbegin("create_subordinates");
rs_lock("w", MY_TEST_RECORD, MY_SUBORDINATE, REC_SUB, 0L);

if(d_keyfind(L_UKEY, &lKey) == S_OKAY)
{
printf("\nCreated record found, key is %d\n", lKey);

d_setor(REC_SUB);
my_subordinate sub1, sub2;

strncpy(sub1.sz_text_subord, c_szFirstSubrecord, 40);
sub1.sz_text_subord[39] = '\0';

strncpy(sub2.sz_text_subord, c_szSecondSubrecord, 40);
sub2.sz_text_subord[39] = '\0';

if(d_fillnew(MY_SUBORDINATE, &sub1) == S_OKAY)
{
d_connect(REC_SUB);
printf("\nFirst subordinate connected\n");
}

if(d_fillnew(MY_SUBORDINATE, &sub2) == S_OKAY)
{
d_connect(REC_SUB);
printf("\nSecond subordinate connected\n");
}
}
d_trend();
d_freeall();

}

/*-------------------------------------------------------------------*/
void TestFindByKey()
{
long lKey = 1;
long lNotExistentKey = 1000;

if(FindByKey(lKey))
{
printf("\nValue %d found (unique key)\n", lKey);
}

if(!FindByKey(lNotExistentKey))
{
printf("\nValue %d not found (unique key)\n", lNotExistentKey);
}
}

/*-------------------------------------------------------------------*/
int main(int argc, char * argv[])
{
printf("\nVista - start\n");
d_dbuserid("my_user_id");
if(d_open("d_123", "s") == S_OKAY)
{
printf("\ndatabase opened\n");

rs_lock("r", REC_SUB, MY_SUBORDINATE, MY_TEST_RECORD, 0L);
printf("d_keyfind(L_UKEY,NULL)=%d\n",d_keyfind(L_UKEY,NULL));

long lKey = 0;
if(d_keyfind(L_UKEY, &lKey) == S_OKAY)
{
d_setor(REC_SUB);
long lCount = 0;
d_members(REC_SUB, &lCount);
printf("\nNumber of members: %d\n", lCount);
if(lCount > 0)
{
my_subordinate sub;
d_findfm(REC_SUB);
d_recread(&sub);
printf("\n%s\n", sub.sz_text_subord);

d_findnm(REC_SUB);
d_recread(&sub);
printf("\n%s\n", sub.sz_text_subord);
}
}
d_freeall();

d_close();
}
printf("\nVista - end\n");
}

-------d_123.h - генерится атоматом. имя должно примерно совпадать с именем базы данных.
/* db_VISTA Version: 3.64 */

/* database d_123 record/key structure declarations */

#ifndef __d_123_H_INCLUDED__
#define __d_123_H_INCLUDED__

struct my_test_record {
long l_ukey;
long l_key;
char sz_text[20];
};
struct my_subordinate {
char sz_text_subord[40];
};

/* record, field and set table entry definitions */

/* File Id Constants */
#define F_123D 0
#define F_123S 1
#define KEYS 2

/* Record Name Constants */
#define MY_TEST_RECORD 10000
#define MY_SUBORDINATE 10001

/* Field Name Constants */
#define L_UKEY 0L
#define L_KEY 1L
#define SZ_TEXT 2L
#define SZ_TEXT_SUBORD 1000L

/* Set Name Constants */
#define REC_SUB 20000

#endif /* __d_123_H_INCLUDED__ */
...
Рейтинг: 0 / 0
2 сообщений из 2, страница 1 из 1
Форумы / Другие СУБД [игнор отключен] [закрыт для гостей] / DB_Vista! Экспорт данных. Кто-нибудь еще с оным работает?!
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]