Giver følgende resultat = "E43CF8983B6600D08D181D882E1CF3EA"
Forventet resultat skal være følgende, men bare med en data længde på 16 karakter når det gemmes som binary(16) i en SQL database. 0xE43CF8983B6600D08D181D882E1CF3EA
Ved godt at du kan dette, men prøver at holde selve hash funktionen til Python kun og lade den lægge det færdige resultat ind i en binary(16) kolonne. Håber at det kan lade sig gøre at opnå det fulde resultat 100% i Python uden brugen af SQL convert ved insert processen.
Det kan ikke lade sig gøre uden en passende CONVERT direkte i en SQL-sætning, men kan du ikke direkte anvende et byte-array som parameter til en BINARY(16) i et prepared statement?
Har prøvet at leje lidt rundt med bytearray, men syndes ikke helt at jeg kan få det til at virke, men det bliver sagt på stackoverflow at det er den rigtige vej frem. Er det noget nogen kan hjælpe med? Er nemlig ikke Python mester og kan kun det jeg kan google mig frem til.
Da jeg alligevel har brug for en mssql-server om en måneds tid, fik jeg sat een op og prøvede lidt med Python - både 2 og 3. Det virker ikke.
Python 3 skelner bedre mellem strenge og byte-arrays, men heller der.
Problemet, som jeg så det sidst på aftenen, er at ingen Python-moduler til db adgang implementerer prepared statements rigtigt - kun noget der ligner, som måske bliver kaldt parametriserede statements.
De "rigtige" prepared statements sender en SQL streng med "?" eller lignende afsted til SQL-serveren, sammen med et passende antal værdier ved siden af.
De parametriserede statements opbygger een SQL-streng med værdier sat ind, under hensyntagen til SQL-injection, men har så ikke valgt at tage hensyn til byte-arrays. Og hvis de havde gjort det, så havde de bare lavet det om til en tekststreng.
Men det var sent, og det var mørkt udenfor, så måske mangler jeg bare oplysninger: findes der Python-moduler til databaseadgang, der rent faktisk anvender rigtige prepared statements?
I dette tilfælde bruger jeg ikke SQL servers muligheder for at køre med Python kode, men bruger Python koden eksternt i et ETL værktøj for derefter at pushe det tilbage til SQL serveren.
Men har nu besluttet at bruge SQL convert(binary(16),string,2) i final step frem for at holde alt i Python, da du nævnte at det næsten var umuligt at ramme SQL binary formatet i Python.
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.