2013-09-03 4 views
4

우리는 (매우 진절머리 나는) 애플리케이션과 프론트 엔드를위한 Firebird 데이터베이스를 가지고 있지만 중간에 아무 것도 (즉, 소스 코드가 없음).어떤 종류의 int storage가 이것입니까?

-2086008209으로 저장되지만 프런트 엔드에는 63997으로 표시되는 필드가 데이터베이스에 있습니다.

예 :

 
Database Front-End 
758038959 44093 
1532056691 61409 
    28401112 65866 
-712038758 40712 
936488434 43872 
-688079579 48567 
1796491935 39437 
1178382500 30006 
1419373703 66069 
1996421588 48454 
890825339 46313 
-820234748 45206 
이를 저장 어떤 종류의

? 여기서 우리가 목표로하는 것은 응용 프로그램의 백엔드 데이터에 액세스하고 프런트 엔드 GUI를 모두 우회하는 것입니다. 따라서 적절한 값을 얻기 위해이 필드를 디코딩하는 방법을 알아야합니다. FireBird에 int으로 저장됩니다 (FireBird가 서명/서명되지 않은 int를 가지고 있는지 여부는 모르겠지만 선택시 서명 된 것으로 표시됩니다).


필드의 정의입니다 :

enter image description here

그것은 지금까지 내가 말할 수있는,하지, 드 정규화. 발전기 GEN_CONTACTS_ID에는 그것에 대해 66241이 있으며, 이는 한눈에 정확합니다.

+0

예제가 더 있습니까? 테이블에 어떤 값이 여러 번 나타 납니까? 해당 데이터베이스 필드가 응용 프로그램에서 동일하게 나타나는지 확인할 수 있습니까? –

+0

@AndersLindahl - 업데이트 각 값은 한 번만 발생합니다. –

+0

@MarkHenderson DB의 숫자가 2가 아닌 단일 "프런트 엔드"값에서만 계산됩니다. 그렇지 않으면 숫자를 인코딩/해독하기 위해 고의적 인 시도를하는 것처럼 보입니다. –

답변

1

내가 정수 (단지 요구하지 않음)에서 비트 맵을 저장하는 응용 프로그램에서 작동, 당신이 그 형태를 표현하는 경우에 당신에게 어떻게 유용하거나

+0

우리는이 프로젝트를 몇 달 전에 통조림으로 만들었습니다. 그러나 나는 이것을 조사하기로 결정했다. 당신은 올바른 길을 가고있었습니다. 숫자는 실제로 비트 맵처럼 보였습니다. 결과 숫자와 어떻게 관련이 있는지는 모르지만 더 이상 신경 쓰지는 않습니다. 어쩌구. –

1

제 생각에 문제는 프런트 엔드에 있습니다. DB에 저장된 내용이 -2086008209 인 경우 DB에 저장되는 내용은 -2086008209입니다. 응용 프로그램이 데이터를 조작하는 방법을 더 잘 이해하려면 DB에 다른 숫자를 저장하고 표시 방법을 확인하십시오.

+0

물론, 프런트 엔드에있는 모든 것에서 DB에있는 내용을 가져 오는 과정을 이해해야합니다. 불행히도 필자는 필드에 임의의 데이터를 입력 할 수 없습니다 (이유를 묻지도 않음). 수만 건의 기록이 있습니다 - 저는이 무작위로 선택한 것을 누군가가이 땅에서 무슨 짓을했는지 알기를 바랍니다. –

+0

@ MarkHenderson 나는 몇 가지 빠른 테스트를했고 어떤 관계도 찾지 못했습니다. 더 많은 경우가 확실히 도움이 될 것입니다. 새로운 값을 입력 할 수 없다면 어떤 값이든지 이미 DB에 표시됩니다. 10 시라고? –

+0

더 많은 예제로 업데이트했습니다. 나는 내가 생각할 수있는 모든 것을 시도했다. 즉, 다른 것들 사이에서 바이너리로 변환 한 다음, 바이너리에서 ascii/ansi/unicode 표현 (심지어 닫히지 않음)으로 변환했다. –

0

로깅의 SQL을 통해이 실현 되었는가 consistant 무엇인가? 만약 당신이하지 않으면 Firebird Trace API를 사용하여 SQL을 얻을 수 있습니다 : http://www.firebirdfaq.org/faq95/. Trace API를 파싱하는 더 쉬운 도구는 상용 제품입니다 : http://www.upscene.com/products.fbtm.index.php.

저는 이러한 도구와 다른 기술 (트리거 등)을 사용하여 응용 프로그램이 데이터베이스에서 사용/변경중인 내용을 확인했습니다.

물론 SQL 문이 테이블에서 select *이면이 도구는별로 도움이되지 않습니다.

관련 문제