TwojePC.pl © 2001 - 2024
|
|
A R C H I W A L N A W I A D O M O Ś Ć |
|
|
|
insert MSSQL 2008 , Glock19 22/05/13 13:00 mam problem z dodawaniem do bazy CDN.Optima
Chce dodać z poziomu PHP (Serwer Linux Debian FreeTDS 8.2)
Wartość do bazy w MSSQL 2008 R2
wartości są ok bo jak skopiuje sobie inserta i wkleje w managment studio to dodaje wartość do bazy.
http://pastebin.com/daPHedhA- Nikt tu nie jest wróżką. , Tig3r 22/05/13 13:23
Może zacznij od sprawdzenia co się serwerowi nie podoba:
http://php.net/...ction.mssql-get-last-message.php- no nic nie zwraca , Glock19 22/05/13 13:38
.....- a COMMIT robisz? , bwana 22/05/13 13:46
bo może w tym problem - wstawiasz, nie masz komunikatu o błędzie ale rekordu w bazie też nie - bo wstawiłeś, nie zrobiłeś COMMIT-a i przerwałeś sesję."you don't need your smile when I cut
your throat" - to chyba nie to , Glock19 22/05/13 14:04
http://www.shotdev.com/...in-tran-commit-rollback/
Skorzystałem dla przykładu z tego jeszcze.
i to samo.- może nie, ale w Twoim kodzie nie widzę nigdzie wykonania COMMIT , bwana 22/05/13 14:17
jeśli rozpoczynasz transakcję (jawnie lub nie - czyli BEGIN TRAN albo po prostu dowolny DML) to żeby jej wyniki zostały zapisane w bazie, COMMIT trzeba wykonać (chyba że w MS SQL takie niejawne transakcje są autocommitowane, w co wątpię, ale się nie znam)."you don't need your smile when I cut
your throat" - Niekoniecznie. IMHO w standardzie jest ze albo zaczynasz beginem a potem , ptoki 22/05/13 14:37
robisz commit czy rollback po kilku DML-ach albo begin i commit są zakładane domyslnie dla każdego DML-a osobno.- To zależy:-D , bwana 22/05/13 16:17
http://stackoverflow.com/...-an-sql-server-session
zależy od ustawienia zmiennej bazy/ zmiennej sesji o nazwie IMPLICIT_TRANSACTIONS
Jeśli IMPLICIT_TRANSACTIONS jest ON (domyślnie) to trzeba commitować. Jeśli OFF - każdy DML jest wykonywany nietransakcyjnie (automatycznie zacommitowany - jakże brzydko to słowo wygląda:-D)"you don't need your smile when I cut
your throat" - Ale ogólnie się nie spieram, bo na MS SQL po prostu się nie znam , bwana 22/05/13 16:19
Niemniej jeśli brak wyjatku z API w PHP, brak błędu zwróconego przez bazę i brak rekordu w bazie - to brak commit-a to pierwsze co się nasuwa, nie?;-D"you don't need your smile when I cut
your throat" - Oczywiście. Ale z tego ci posał Glock19 nie wynikało że nie ma błędów. , ptoki 23/05/13 08:25
Nie raz miałem kod który nie miał poprawnej obsługi błędów i sie drapałem po głowie co sie dzieje.
W ten jego kod inicjalnie nie zagląłem.
Ale jak select w takim kodzie działa to i insert powinien chyba że insert ma w sobie selecta który nic nie zwraca :)
A co do ustawienia tej zmiennej to IMHO dziwne było by gdyby domyślnie było ustawione na ręczny commit. Takie jakieś nienormalne :)
- To może zacznij po kolei. , Tig3r 22/05/13 14:23
1. Sprawdź czy rzeczywiście nawiązujesz połączenie.
2. Sprawdź czy możesz zrobić jakiegoś SELECTa.
3. Sprawdź uprawnienia dla użytkownika. To że użytkownik user@localhost coś może to nie znaczy że user@drugamaszyna może to samo.
4. Sprawdź czy możesz zrobić insert pojedynczego pola.
BTW zarówno MSSQL jak i CDN na pewno oferują support do swoich produktów. Zapytaj ich :)- No i poczytaj hinty tutaj: , Tig3r 22/05/13 14:27
http://php.net/manual/pl/ref.mssql.php
- znalazłem , Glock19 22/05/13 14:31
SET ANSI_NULLS ON
SET ANSI_PADDING ON
SET ANSI_WARNINGS ON
SET ARITHABORT ON
SET CONCAT_NULL_YIELDS_NULL ON
SET QUOTED_IDENTIFIER ON
SET NUMERIC_ROUNDABORT OFF - i czym to poskutkowało? , bwana 22/05/13 16:25
- wstawia się rekord?
- nie wstawia się rekord, ale zobaczyłeś komunikat o błędzie?"you don't need your smile when I cut
your throat" - rekord wstawia sie poprawnie , Glock19 22/05/13 22:26
jw......
- na przyszłość zapodaj budowę tabeli , Tomasz 22/05/13 20:17
to ci powiemy czemu ten Insert nie działa. Nie każdy ma pod ręką CDN.Optimahttps://www.siepomaga.pl/milosz-mosko - pisałem ze insert , Glock19 22/05/13 22:25
wklepany w managment studio działał poprawnie- w tym wypadku PHP zachowało się bardziej jak ODBC podczas połączenia , Tomasz 23/05/13 02:37
(takie opcje można w ODBC ustawić) podczas gdy np. C# w którym podaje się bezpośrednio connection string przyjmuje powyższe z konfiguracji serwera. Ciekawe.https://www.siepomaga.pl/milosz-mosko
|
|
|
|
|
All rights reserved ® Copyright and Design 2001-2024, TwojePC.PL |
|
|
|
|