2014-06-11 2 views
0

영수증을 작성하고 ESC/Pos를 통해 영수증 프린터로 보냅니다. 나중에 영수증 복사본을 인쇄해야하는 경우 esc/pos 명령을 데이터베이스에 저장해야합니다. 영수증을 저장할 올바른 데이터 유형을 찾을 수 없기 때문에 내 문제가 시작됩니다.나중에 전송할 프린터 명령 저장

영수증 사본은 어떻게 저장합니까? 문자열? Varbinarys? 다른 건 없니?

업데이트 : 죄송합니다. 나는 ESC/Pos가 어떻게 작동하는지에 대한 빠른 예를 썼다.

 Encoding enc = Encoding.ASCII; 

     string text = string.Empty; 
     text += Convert.ToChar(27) + "@"; 
     text += Convert.ToChar(27) + "R" + Convert.ToChar(9); 
     text += Convert.ToChar(27) + "t" + Convert.ToChar(5); 

     for (int i = 255; i < 300; i++) 
     { 
      text += i + " " + Convert.ToChar(i) + Environment.NewLine; 
     } 
     for (int i = 0; i < 4; i++) 
      text += Environment.NewLine; 
     text += Convert.ToChar(29) + "V" + Convert.ToChar(65) + Convert.ToChar(0); 
     clientSock.Send(enc.GetBytes(text.ToCharArray())); 

이것은 내가 저장하기를 원하는 것입니다. 콘텐츠에 포함될 수있는 형식을 잃어 버렸기 때문에 텍스트 변수에 콘텐츠를 저장하고 싶지 않습니다. Microsoft SQL Server (T-SQL)를 사용하고 있습니다.

+0

예제 데이터를 보내주십시오. –

+0

잘 아는 사람이 아니기 때문에 (예를 들어 다른 사람도 의심 스럽지만) 어떤 데이터베이스 [b]를 사용하고 있는지 데이터베이스 서버 중 일부를 게시 할 수 있습니까? –

+0

물론 가능합니다! 나는 그것을 이전에 포함시키지 않아서 유감이다. 나는 지금 질문을 업데이트했다. – DaveL

답변

0

string을 사용하지 않으려면 적어도 인쇄 할 수없는 문자를 저장해야하는 것처럼 보입니다. 또한 varbinary는 254 바이트로 제한되므로 BLOB를 사용하는 것이 더 나을 것입니다.

또한 fyi 만 사용하면 모든 문자열 연결을 수행하는 대신 StringBuilder를 사용하는 것이 좋습니다. 훨씬 더 빠를 것입니다.

+0

답장을 보내 주셔서 감사합니다. 데이터 유형 중에서 BLOB를 찾고 있었지만 거기에 없었습니다. 대안을 생각해 볼 수 있습니까? 또한 연결에 대해 알려 주셔서 감사합니다. – DaveL

+0

실제로 나는 더 많은 인터넷 검색을했고 그것은 내가 잘못 지적한 것처럼 보입니다. 워드 프로세서는 혼란스럽지 않지만 T-SQL 내에서 varbinary 변수는 254 바이트로 제한됩니다. varbinary 열은 최대 2^31-1 바이트 수 http://msdn.microsoft.com/en-us/library/ms188362.aspx –

+0

그러나 varbinary 나던 모든 문자를 저장할 것으로 보인다 인쇄 전용 ones – DaveL

관련 문제