pyodbc를 사용하여 기존 Access 2000 .mdb 파일과 통신하고 있습니다.pyodbc를 사용하여 MS Access MDB에 행을 삽입 할 때 매개 변수를 어떻게 이스케이프합니까?
내가 커서를 가지고,이 실행하려고 :
pyodbc.Error: ('HYC00', '[HYC00] [Microsoft][ODBC Microsoft Access Driver]Optional feature not implemented (106) (SQLBindParameter)')
에 결과 그러나 이렇게
c.execute("INSERT INTO [Accounts] ([Name], [TypeID], [StatusID], [AccountCat], [id]) VALUES (?, ?, ?, ?, ?)", [u'test', 20, 10, 4, 2])
을 나는 단순히 문자에 물음표를 변경할 수 있습니다 이해 가치,하지만 내 경험에 데이터베이스를 통해 문자열의 적절한 이스케이프는 ... 꽤되지 않습니다.
PHP와 mysql 팀이 mysql_real_escape_string
과 친구들을 데리고 올리 겠지만, pyodbc의 값을 이스케이프 처리하는 기능을 찾을 수 없습니다.
이 데이터를 (파이썬에서) 삽입하는 권장 방법이 무엇인지 알려 주시면 매우 도움이 될 것입니다. 또는 odbc 문자열을 이스케이프하는 파이썬 함수가 있으면 멋질 것입니다.
파이썬 긴 데이터 형식의 정의는 무엇입니까? 그것이 제트 긴 정수의 용량을 초과하면, 그 이유는 그것을 사용할 수 없기 때문입니다. 그것이 문제의 원인 인 경우 파일럿 오류 인 것처럼 보입니다. 즉, 대상 데이터베이스의 데이터 유형을 완전히 이해하지 않고 무언가를 시도했습니다. –
파이썬에서 long은 임의의 용량을 가지고 있습니다. 파이썬은 필요에 따라 int를 투명하게 승격 시키지만 자동으로 강등시키지 않습니다. 따라서 int (24)는 long이지만 integer (24)는 long이지만 int (2400000000)과 long (2400000000)은 모두 long입니다. 따라서 파이썬 프로그래머가 자신의 프로그램이 longs, ints 또는이 두 가지를 혼합하여 사용하는지 여부를 알지 못하는 것은 매우 합리적입니다. pyodbc가 범위에 있다면 둘 다 받아 들일 것으로 기대하는 것은 무리가 아닙니다. –