Jak przypisać wartość wszystkim wierszom z kolumny z innej tabeli?

0

Witajcie!

Mam - wydaje się proste pytanie. Ale coś mnie zaćmiło.
Mam 2 tabele: tab1 i tab2.
W tych tabelach mam m.in. pola tresc (w obu tabelach) jako varchar (500).
W jaki sposób przepisać dane z jednej tabeli do drugiej.

Tabela2Tresc.AsString:= Tabela1Tresc.AsString;

nie działa (ograniczenie stringa do 255).
Samo przypisanie niby działa, ale polskie litery zostaja zamienione na krzaczki.
Bazy oparte są nas MySQL

0

Bo zdefiniowałeś sobie Tabela2Tresc, i Tabela1Tresc jako fielda po stronie DFM. W takiej sytuacji length jest pobierany na moment tworzenia i jak potem rozszerzyłeś kolumnę na bazie to w DFM została stara wartość. Wywal te fieldy i zrób qTabela2.FieldByName('Tresc').AsString := qTabela1.FieldByName('Tresc').AsString i będziesz miał to dynamiczne bez względu na zmiany rozmaru po stronie bazy

0
Sc0li0sis napisał(a):

nie działa (ograniczenie stringa do 255).

Nie używasz dyrektywy {$H+}?

Samo przypisanie niby działa, ale polskie litery zostaja zamienione na krzaczki.

Sprawdź kodowanie. Pamiętaj, że typ String we Free Pascalu domyślnie jest kodowany w UTF-8.

1

Dzięki za odpowiedzi.

W bazie też mam kodowanie UTF-8, więc skąd "krzaczki"?

0

W bazie też mam kodowanie UTF-8, więc skąd "krzaczki"?

Dawno nie bawiłem się MySql'em w Delphi. Być może w parametrach połączenia z bazą masz nieprawidłowo ustawione kodowanie

1 użytkowników online, w tym zalogowanych: 0, gości: 1